【问题标题】:libxml2 - get node(xmlNodePtr) content?libxml2 - 获取节点(xmlNodePtr)内容?
【发布时间】:2012-09-28 04:29:40
【问题描述】:

我解析并有指针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>

指导我解析这个

【问题讨论】:

  • libxml2 可能会让新手感到困惑。如果性能不是本质,我会真诚地推荐使用更简单的库。
  • 我建议查看 libxml2 示例,特别是 tree1.c,它展示了如何导航文档和获取内容。 xmlsoft.org/examples/index.html#tree1.c

标签: iphone objective-c libxml2


【解决方案1】:

XPath 部分 api 返回一个节点数组。见XPath examples

一旦你得到xmlXPathEvalExpression 的结果为xpathObj,那么数组就在xpathObj-&gt;nodesetval-&gt;nodeTab 中。 nodesetval 是指向 xmlNodeSet type 的指针。

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

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

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

【讨论】:

    猜你喜欢
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2020-06-22
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多