gpt4 book ai didi

xml - Xpath:XML中的非唯一节点名称

转载 作者:行者123 更新时间:2023-12-03 17:14:55 25 4
gpt4 key购买 nike

我被要求编写一个程序来解析下面的XML。

<crowd_response_row i="http://www.w3.org/2001/XMLSchema-instance">
<crowd_response_data>
<crowd_response_data>
<project_id>184472</project_id>
<approval_status_code>Pending</approval_status_code>
</crowd_response_data>
<crowd_response_data>
<project_id>184475</project_id>
<approval_status_code>Approved</approval_status_code>
</crowd_response_data>


在我的程序中(用网络采集编写),获取数据的唯一方法是使用xpath表达式。

<xpath expression="//crowd_response_data">


问题是因为有两种名称相同的节点,当我只需要子节点(有数据的节点)时,我的程序会同时拾取两个节点。

是否可以将xpath表达式修改为仅获取子级,还是需要更改原始XML,以便每个节点都有唯一的名称?

谢谢。

最佳答案

限制查询


是否可以修改该xpath表达式以仅获取子对象?


您可以使用谓词来限制具有<crowd_response_data/>子元素的<project_id/>元素,方法是使用

//crowd_response_data[project_id]


或查询属于另一个 <crowd_response_data/>节点的子元素的所有 <crowd_response_data/>元素:

//crowd_response_data/crowd_response_data


修正数据


还是我需要更改原始XML,以便每个节点都有唯一的名称?


如果可以的话,这可能是个更好的主意,并且以后可以避免其他问题。那么 <crowd_responses/>元素作为容器呢?

    <crowd_responses>
<crowd_response_data>
<project_id>184472</project_id>
<approval_status_code>Pending</approval_status_code>
</crowd_response_data>
<crowd_response_data>
<project_id>184475</project_id>
<approval_status_code>Approved</approval_status_code>
</crowd_response_data>
</crowd_responses>

关于xml - Xpath:XML中的非唯一节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22666766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com