次のような xml ドキュメントを作成します。
<doc>
<node1>
<value1>aa bb</value1>
<value2>cc dd</value2>
</node1>
<node2>
<value1>aaa bbb</value1>
<value2>ccc ddd</value2>
</node2>
</doc>
このドキュメントを minixml ライブラリで解析しようとしました:
mxml_node_t *b = tree, *c; //tree is global variable
while (b) {
if (b && b->type == MXML_ELEMENT) {
if(strcmp(b->value.element.name, "value1") == 0)
{
c = mxmlWalkNext(b, b, MXML_DESCEND);
if (c && c->type == MXML_TEXT)
{
if(c->value.text.string != NULL)
{
printf("value1=%s"c->value.text.string);
}
}
}
}
if (b && b->type == MXML_ELEMENT) {
if(strcmp(b->value.element.name, "value2") == 0)
{
c = mxmlWalkNext(b, b, MXML_DESCEND);
if (c && c->type == MXML_TEXT)
{
if(c->value.text.string != NULL)
{
printf("value2=%s"c->value.text.string);
}
}
}
}
b = mxmlWalkNext(b, tree, MXML_DESCEND);
}
ファイルを解析すると、次の結果が見つかりました。
value1=aa //the value is not right it must be "aa bb"
value2=cc
...
私の問題を解決する方法はありますか?