gpt4 book ai didi

xml - 使用 Powershell 解析不一致的 XML 对象

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

我正在尝试解析不包含统一属性的 XML。示例

<root>
<object>
<name>Object1</name>
<valueString>string</valueString>
</object>
<object>
<name>Object2</name>
<valueBoolean>true</valueBoolean>
</object>
</root>

子属性的数量始终相同,但有时是 bool 值,有时是字符串,标签名称也会相应变化。问题不在于类型本身,而是使用 Powershell,我必须事先知道标签名称才能获得附加到它的值。

目前我正在做这样的事情:

foreach($item in $items){
if(!$item.object.valueString){
$temp = $item.object.valueBoolean
}
else{
$temp = $item.object.valueString
}
$properties = @{
Name = $item.object.Name
value = $temp
}
}

这行得通,但我想要一个更优雅的解决方案 + 目前它非常严格,你必须迎合每一种可能性。

有没有更好的办法?

干杯

最佳答案

您可以使用 ChildNodes 属性按顺序访问子元素:

$xml=[xml]@'
<root>
<object>
<name>Object1</name>
<valueString>string</valueString>
</object>
<object>
<name>Object2</name>
<valueBoolean>true</valueBoolean>
</object>
</root>
'@
foreach($object in $xml.root.object){
$value=$object.ChildNodes[1]
[PSCustomObject]@{
Name=$object.Name
ValueName=$value.Name
Value=$value.'#text'
}
}

关于xml - 使用 Powershell 解析不一致的 XML 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28016655/

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