gpt4 book ai didi

xml - Xpath 选择祖先

转载 作者:数据小太阳 更新时间:2023-10-29 01:55:50 24 4
gpt4 key购买 nike

我试图找到一个公式,根据元素在 XML 层次结构中的位置为其创建 URL。

这是我的示例 xml:

<Xml>
<Site Url="http://mysite.abc">
<Content></Content>
<SubSites>
<Site Url="/sub1">
<Content></Content>
<SubSites>
<Site Url="/sub2">
<Content></Content>
<SubSites>
<Site Url="/sub3">
<Content></Content>
</Site>
</SubSites>
</Site>
</SubSites>
</Site>
</SubSites>
</Site>
</Xml>

我在 Powershell 中有一个函数,它从顶部递归向下迭代,在我想要生成祖先 Url 值的串联的每个“Content”元素上。所以它应该为每个“内容”节点连续生成:

http://mysite.abc
http://mysite.abc/sub1
http://mysite.abc/sub1/sub2
http://mysite.abc/sub1/sub2/sub3

我现在使用:($Node = 'Content' 元素)

$Sites = $Node | Select-XML -XPath  "//ancestor::Site"

但对于每个 $Node,它都会选择所有“站点”元素。它期望它在 xml 结构中向下查找时找到更多的祖先。

如果有人知道如何使用 Xpath 直接连接这些值,那会特别好,但对于初学者来说,我很乐意知道我当前的方法出了什么问题。

最佳答案

//ancestor::Site 将为您提供相对于 any 节点的祖先 Site 节点(//) 在树中。

使用./ancestor::Site 只获取相对于当前节点的祖先(.):

$Sites = $Node | Select-XML -XPath  "./ancestor::Site"

关于xml - Xpath 选择祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49208236/

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