【发布时间】:2010-10-12 08:58:04
【问题描述】:
我是 XML 开发的新手。我有一些关于使用 XPATH 和 libxml 解析 XML 的问题。
我的 XML 结构如下:
<resultset>
<result count=1>
<row>
<name> He-Man! </name>
<home> Greyskull </home>
<row>
</result>
<result count=2>
<row>
<name> Spider-Man</name>
<home> Some downtown apartment </home>
<row>
<row>
<name> Disco-Man!</name>
<home> The 70's dance floor </home>
<row>
</result>
<resultset>
我需要从这个 XML 中挑选名称,但是如果计数是 2,我只需要从第一条记录中获取它。我浏览了一些教程,但我无法提出可以用于此目的的 XPATH 查询。
/name 将选择所有名称元素。
/result[@count > 1]/row[1]/name | /result[@count =1]/row/name
这可以用 XPATH 完成吗?是通过 XPATH 还是通过遍历 XML 树更好?
有人可以指出我通过 XML 进行一些复杂的搜索吗?
编辑:实际场景需要选择 XML 行的一个子集,它们有时嵌套在 2 个级别。这听起来像我需要 OR '|'选择我需要的节点的许多路径......我不确定这是否比走一棵树更有效......上面是为了复制问题而输入的:)
谢谢!
【问题讨论】:
-
Xpath 正在遍历 XML 树。
-
也许我误解了这个问题,或者您的示例被简化了很多,但
/result/row[1]/name在您的示例中不起作用吗?