XML EXMAPLE:
<first node>
<second node>
hello
</second node>
<third node>
abcd
</third node>
</first node>
如果Xml文件如上所示,并且我给出了输入路径“第一个节点/第二个节点”,我必须能够将结果作为“hello”。
如果输入路径是“第一个节点/第三个节点”,则结果应为“abcd”
答案 0 :(得分:1)
您的XML无效:标记名称不能包含空格,结束标记的编写方式与</tag>
类似,而不是<tag/>
。
在这里,我为您修复了XML:
<first-node>
<second-node>
hello
</second-node>
<third-node>
abcd
</third-node>
</first-node>
现在要获取second-node
和third-node
内容,您需要正确的XPath表达式,例如: //first-node/second-node/text()
和//first-node/third-node/text()
。
这是完整的例子:
TiXmlDocument doc;
if (doc.LoadFile("example.xml"))
{
// Will be "hello"
TIXML_STRING s1 = TinyXPath::S_xpath_string(
doc.RootElement(),
"//first-node/second-node/text()");
// Will be "abcd"
TIXML_STRING s2 = TinyXPath::S_xpath_string(
doc.RootElement(),
"//first-node/third-node/text()");
}