gpt4 book ai didi

python - 当使用 XPath 选择另一个节点时,如何引用当前节点的子节点的值? (DDEX相关)

转载 作者:行者123 更新时间:2023-11-30 23:38:00 25 4
gpt4 key购买 nike

考虑这个 XML 结构,DDEX 标准的简化版本:

<doc>
<master>
<ResourceInfo>
<Name>Foo</Name>
<Seq>1</Seq>
</ResourceInfo>
<ResourceInfo>
<Name>Bar</Name>
<Seq>2</Seq>
</ResourceInfo>
</master>
<track>
<Resource>
<Name>Foo</Name>
</Resource>
</track>
<track>
<Resource>
<Name>Bar</Name>
</Resource>
</track>
</doc>

我想选择 <master> 中的 ResourceInfo 节点带着 child <Name>匹配每个track节点的Name的文本值,得到Seq号。

我可以通过获取每个轨道的 lxml 树并显式请求 <ResourceInfo> 来直接做到这一点是这样的:

track.xpath('/doc/master/ResourceInfo/Seq[../Name[text()="Foo"]]')

但这假设我知道每首轨道的名称并且可以提前明确说明。我希望能够愚蠢地映射它,并以某种方式替换 xpath 中的“Foo”,并引用名称 text()当前轨道的资源。

这有点像加入 text() 上的轨道和资源master 中名称的 text()每个轨道中的名称。有没有一种简单的方法可以使用 XPath 来做到这一点?

我正在尝试迭代每个轨道,并从轨道中提取 Seq。因此,我不能明确要求“Foo”。我需要反省 - “给我一个 Seq,它是 master 中 <Name> 节点的兄弟节点,其值与 <Name> 中当前节点的 <track> 匹配”。

最佳答案

我不确定我是否完全理解,但当前上下文是否是:

/doc/track/Resource/Name

并且您使用以下 XPath:

/doc/master/ResourceInfo[Name = current()]/Seq

您应该获得相同NameResourceInfoSeq

关于python - 当使用 XPath 选择另一个节点时,如何引用当前节点的子节点的值? (DDEX相关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905263/

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