说我有这个xml:
$xml = [xml]@'
<messages>
<message name="Advertisement" msgtype="7" msgcat="app">
<field name="AdvId" required="Y" />
<field name="AdvTransType" required="Y" />
<field name="AdvRefID" required="N" />
<component name="Instrument" required="Y" />
<component name="Balls" required="Y" />
<field name="AdvSide" required="Y" />
<field name="Quantity" required="Y" />
</message>
</messages>
'@
我期待下面的结果,但没有返回任何内容:
$xml.messages.message[1] # should return <field name="AdvTransType" required="Y" />
$xml.messages.message[3] # should return <component name="Instrument" required="Y" />
我缺少一个功能吗?我想通过索引访问节点......
powershell版本:6.0.0 alpha
答案 0 :(得分:1)
在名为node notation的XML树中,返回指定节点的数组,因此message[1]
表示第二message
,但您只有一个message
。
要按索引访问子节点而不考虑类型,请使用特殊属性ChildNodes
:
$xml.messages.message.ChildNodes[1]
name required ---- -------- AdvTransType Y
答案 1 :(得分:0)
试一试:
$xml.messages.message.field[1]
$xml.messages.message.field[2]