简单的 XPath 程序不起作用
Simple XPath program doesn't work
XML 文件 tree.xml:
<?xml version="1.0"?>
<mesh name="mesh_root">
some text
<![CDATA[someothertext]]>
some more text
<node attr1="value1" attr2="value2" />
<node attr1="value2">
<innernode/>
</node>
</mesh>
我想获得 <node>
项。然后是它们的 attr1
值。
C++代码:
#include "pugixml.hpp"
#include <iostream>
using namespace pugi;
int main()
{
xml_document doc;
xml_parse_result result = doc.load_file("tree.xml");
xpath_query q("node");
xpath_node_set ns = doc.select_nodes(q);
std::cout << ns.size() << std::endl;
}
我认为结果应该是 2,但由于某种原因它是 0。怎么了?
我的代码中有 2 个错误:
要匹配文档中所有的<node>
元素,我们需要使用下面的XPath表达式:"//node"
运行 XPath 查询的不同语法:
xpath_query q("//node");
xpath_node_set ns = q.evaluate_node_set(doc);
std::cout << ns.size() << std::endl;
打印 2。
XML 文件 tree.xml:
<?xml version="1.0"?>
<mesh name="mesh_root">
some text
<![CDATA[someothertext]]>
some more text
<node attr1="value1" attr2="value2" />
<node attr1="value2">
<innernode/>
</node>
</mesh>
我想获得 <node>
项。然后是它们的 attr1
值。
C++代码:
#include "pugixml.hpp"
#include <iostream>
using namespace pugi;
int main()
{
xml_document doc;
xml_parse_result result = doc.load_file("tree.xml");
xpath_query q("node");
xpath_node_set ns = doc.select_nodes(q);
std::cout << ns.size() << std::endl;
}
我认为结果应该是 2,但由于某种原因它是 0。怎么了?
我的代码中有 2 个错误:
要匹配文档中所有的
<node>
元素,我们需要使用下面的XPath表达式:"//node"运行 XPath 查询的不同语法:
xpath_query q("//node");
xpath_node_set ns = q.evaluate_node_set(doc);
std::cout << ns.size() << std::endl;
打印 2。