我将尝试找到一种公式,根据元素在XML层次结构中的位置创建URL。
这是我的示例XML:
我在Powershell中有一个函数,它可以从顶部递归地向下迭代,并在每个“Content”元素上生成祖先Url值的连接。因此,它应该连续为每个“Content”节点生成以下内容:
但是对于每个$Node,它选择所有的“Site”元素。在向下遍历xml结构时,它会期望找到更多的祖先。
如果有人知道如何直接使用XPath连接这些值,那就太好了,但首先,我很想知道我的当前方法出了什么问题。
这是我的示例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中有一个函数,它可以从顶部递归地向下迭代,并在每个“Content”元素上生成祖先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,它选择所有的“Site”元素。在向下遍历xml结构时,它会期望找到更多的祖先。
如果有人知道如何直接使用XPath连接这些值,那就太好了,但首先,我很想知道我的当前方法出了什么问题。