libxml2 - 获取节点(xmlNodePtr)内容?

时间:2012-09-27 13:33:35

标签: iphone objective-c libxml2

我解析并将指针xmlNodePtr提升到类别标记,但我想在数组中获取节点(名称)的值,如TrailersFreeMovies , Trailers

<categories><category><name>TrailersFreeMovies</name><url>https://www.ex1.com/srs/index.php?cid=47</url></category><category><name>Trailers</name><url>https://www.ex1.com/srs/index.php?cid=45</url></category></categories>

指导我解析这个

1 个答案:

答案 0 :(得分:0)

XPath api的一部分返回一个节点数组。请参阅XPath examples

获得xmlXPathEvalExpression xpathObj的结果后,数组位于xpathObj->nodesetval->nodeTabnodesetval是指向xmlNodeSet type的指针。

xmlGetNodePath返回与//name xpath表达式匹配的示例xml节点的以下值:

/categories/category[1]/name
/categories/category[2]/name

因此,对您的问题的具体答案是:应用xpath表达式("%s/name", xmlGetNodePath(categoryNode))并处理返回的节点数组。对于每个条目,使用xmlNodeListGetString(doc, node->xmlChildrenNode, 1)获取文本。