- PR -

xerces 2.7.0 での値(TAB)取得

1
投稿者投稿内容
tokei
会議室デビュー日: 2007/04/09
投稿数: 13
お住まい・勤務地: 東京
投稿日時: 2007-04-09 19:32
xerces 2.7.0 でのgetValueの使用方法の質問です。

下記Aのようなxmlを用意し、下記Bのコードでvalueを取得しました。
取得対象の値は、"ok ng"のように、okとngの間には、TABが有ります。
しかし、取得したvalueは"ok ng"のようにTABが空白になってしまいます。
xmlが悪いのでしょうか?それとも、xercesの使用方法が悪いのでしょうか?

ちなみに、下記HPに
"改行やTAB文字を含む空白文字は、すべて#x20;に置き換えられる。"のような記述が有ります。
ということは、値にTABが含まれる場合、それを取得することは出来ないということなのでしょうか?
http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou10/learning-xml10.html


■A ======================================================
<?xml version="1.0" encoding="UTF-16" ?>
<EData classname="abc" xml:space="preserve">
<ClassAttr NumberOfItems="1">
<ItemData name="data1" value="7" />
</ClassAttr>
<ALL>
<ObjectInstance index="2" NumberOfItems="7" xml:space="preserve">
<ItemData name="Message" value="ok ng" />
</ObjectInstance>
</ALL>
</EData>
=======================================================

■B ======================================================
char* value_char = XMLString::transcode(attrs.getValue((unsigned int)1));

補足  attrsは、Attributes

=======================================================

スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2007-04-09 22:45
文書がそのままでは不可能です。

XML文書中で「value="ok&#9;ng"」のように文字参照を使っていればタブを含んだ値を取得可能です。


[ メッセージ編集済み 編集者: スフレ 編集日時 2007-04-10 00:58 ]
tokei
会議室デビュー日: 2007/04/09
投稿数: 13
お住まい・勤務地: 東京
投稿日時: 2007-04-10 09:45
引用:

スフレさんの書き込み (2007-04-09 22:45) より:
文書がそのままでは不可能です。

XML文書中で「value="ok&#9;ng"」のように文字参照を使っていればタブを含んだ値を取得可能です。


[ メッセージ編集済み 編集者: スフレ 編集日時 2007-04-10 00:58 ]


ありがとうございました。
出来ました!
文字参照を初めて知りました。
ちなみに、&#9;の&は半角でしたね。
1

スキルアップ/キャリアアップ(JOB@IT)