gpt4 book ai didi

xml - xpath 查询的子集?

转载 作者:行者123 更新时间:2023-12-02 04:28:01 25 4
gpt4 key购买 nike

我的 XML 大致如下所示:

<Dispatch ID = "JJJJ">
<Log ID = "150504BCFSP00072">
<LogTime>"May 4 2015 5:48PM"</LogTime>
<LogType>"1125-KKKK"</LogType>
<LogDetails>
<details>
<DetailTime>"May 4 2015 5:48PM"</DetailTime>
<IncidentDetail>"[1] The Thing I Want"</IncidentDetail>
<DetailTime>"May 4 2015 5:49PM"</DetailTime>
<IncidentDetail>"[2] The Thing I Don't Want"</IncidentDetail>
</details>
</LogDetails>
</Log>
</Dispatch>

我想从日志中提取所有 IncidentDetail 文本,其中 Station ID 为 JJJJ,其 LogType 包含“KKKK”,其 IncidentDetail 以 [1] 开头(使其成为可能的许多更新中的第一个更新)。到目前为止我有这个 XPATH 查询:

//Dispatch[@ID='JJJJ']//Log/LogType[contains(.,'KKKK')]

这会为我提供一个事件列表,如下所示:

Element='<LogType>"1125-KKKK"</LogType>'
Element='<LogType>"1125-KKKK"</LogType>'
Element='<LogType>"1125-KKKK"</LogType>'

但这只会让我陷入困境。我现在如何返回并获取与我要查找的内容相匹配的每个 LogType 事件的 IncidentDetail 文本?有一些多步骤的过程吗?

感谢任何帮助。

最佳答案

您可以将其作为谓词,而不是在主轴中步进到 Log/LogType :

//Dispatch[@ID='JJJJ'][Log/LogType[contains(.,'KKKK')]]

或者另一种方式:

//Dispatch[@ID='JJJJ' and Log/LogType[contains(.,'KKKK')]]

从这里,您可以轻松地继续主轴到达IncidentDetail,而无需向后移动:

/Log/LogDetails/details/IncidentDetail

关于更新:

您可以使用 xpath 索引添加过滤器以仅获取同一父级中的第一个 IncindentDetail :

/Log/LogDetails/details/IncidentDetail[1]

或按节点的文本内容过滤:

/Log/LogDetails/details/IncidentDetail[contains(.,'[1]')

关于xml - xpath 查询的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30042889/

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