我呼吁您,因为我在使用未考虑 xpath 表达式中某些参数的 libxml2 库时遇到问题。
这是我尝试解析的 xml 文件的示例:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book title="Harry Potter" lang="eng" version="1">
<price>29.99</price>
</book>
<book title="Learning XML" lang="eng" version="2">
<price>38.95</price>
</book>
<book title="Learning C" lang="eng" version="2">
<price>39.95</price>
</book>
</bookstore>
假设我想提取所有母语为英语且版本为第一版的书籍。
如果我没记错以下 XPath 表达式,我将使用:
//book[@lang='eng' and @version='1']
以及我的代码中的以下说明:
xmlChar * xpath_expression = "//book[@lang='eng' and @version='1']";
xmlXPathObjectPtr xpathRes = xmlXPathEvalExpression(xpath_expression, ctxt);
问题是我得到的结果是书籍列表,好像我只是执行以下请求:
//book
我想知道我的版本是否有问题,因为我知道我的 debian 挤压(2.7.8.dfsg-2 +挤压7)是最新的......