0

XML 示例:

<first node>

   <second node>
           hello 
   </second node>

   <third node>
           abcd
    </third node>
</first node>

如果 Xml 文件如上所示,并且我给出了输入路径“第一个节点/第二个节点”,那么我必须能够得到“hello”的结果。

如果输入路径是“第一个节点/第三个节点”,结果应该是“abcd”

4

1 回答 1

1

您的 XML 无效:标签名称不能包含空格,并且结束标签的写法类似于</tag>,而不是<tag/>

在这里,我为您修复了 XML:

<first-node>
   <second-node>
           hello 
   </second-node>

   <third-node>
           abcd
   </third-node>
</first-node>

现在要获取second-nodethird-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()");
}
于 2014-08-21T19:14:01.397 回答