gpt4 book ai didi

xml - 根据父节点的属性选择子节点

转载 作者:行者123 更新时间:2023-12-01 23:35:59 25 4
gpt4 key购买 nike

我正在尝试根据父节点的属性(由于父节点具有相似的名称)从子节点中选择一个值。我需要根据父属性 (ID) 从节点获取所有值。

所以对于每条记录,我需要对应的VALUE (RECORD/FIELD/DATA/VALUE)。

XML:

<PAGE id="8">
<RECORD>
<GUID>83704498-6ee6-4705-9280-0f0fe90e1148</GUID>
<FIELD id="21">
<DATA>
<GUID>4a2bd78d-beab-4508-af76-0d14fe290709</GUID>
<VALUE>Certificate 1</VALUE>
</DATA>
</FIELD>
<FIELD id="22">
<DATA>
<VALUE>2015-01-20</VALUE>
</DATA>
</FIELD>
<RECORD>
<GUID>83704498-6ee6-4705-9280-0f0fe90e1148</GUID>
<FIELD id="21">
<DATA>
<GUID>4a2bd78d-beab-4508-af76-0d14fe290709</GUID>
<VALUE>Certificate 2</VALUE>
</DATA>
</FIELD>
<FIELD id="22">
<DATA>
<VALUE>2015-01-20</VALUE>
</DATA>
</FIELD>
</RECORD>
</PAGE>

电源外壳:

$record = $XML.SelectNodes('//PAGE/RECORD') | Select-Object @{'Name' = 'records' ; 'Expression' = { 
$_.FIELD.DATA.VALUE} }, GUID
$recordString = ($record | Out-String)
write-host $recordString

此输出为我提供了正确的值和 GUID,但我从所有“FIELDS”中获取值,但我只需要属性 ID = 21 的字段中的值。

最佳答案

使用另一个 XPath 表达式仅针对 FIELD 下的 DATA 节点且 id=21:

$XML.SelectNodes('//PAGE/RECORD') | Select-Object @{
'Name' = 'records'
'Expression' = {
$_.SelectNodes('FIELD[@id="21"]/DATA/VALUE').innerText
}
}, GUID

关于xml - 根据父节点的属性选择子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60828803/

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