使用 PowerShell 选择 XML 标记的值
Selecting value of XML tag with PowerShell
我是 PowerShell 的新手,我很难阅读这些 XML 数据。 XML 看起来像这样:
XML
<RESULTS>
<ROW>
<COLUMN NAME="ATTR1"><![CDATA[123456ABCDEF]]></COLUMN>
<COLUMN NAME="ATTR2"><![CDATA[0.0.0.0]]></COLUMN>
<COLUMN NAME="ATTR3"><![CDATA[Hello World]]></COLUMN>
<COLUMN NAME="ATTR4"><![CDATA[Lorem ipsum]]></COLUMN>
<COLUMN NAME="ATTR5"><![CDATA[This is some text]]></COLUMN>
</ROW>
</RESULTS>
这是我的 PowerShell 到目前为止的样子:
PowerShell
$xmlpath = 'Path\To\XML\File.xml'
$xmldata = [xml](Get-Content $xmlpath)
$xmldata.RESULTS.ROW.COLUMN | Select | Where-Object {$_.NAME -eq "ATTR3"}
这是结果:
结果
ATTR3 Hello World
我想只检索“Hello World”,但我的脚本也在检索属性名称 (ATTR3)。我错过了什么?
期望结果示例
Hello World
为了社区的参考,下面提供了 Santiago Squarzon 的解决方案:
解决方案
$xmldata.RESULTS.ROW.COLUMN.Where{ $_.NAME -eq "ATTR3"}.'#cdata-section'
我是 PowerShell 的新手,我很难阅读这些 XML 数据。 XML 看起来像这样:
XML
<RESULTS>
<ROW>
<COLUMN NAME="ATTR1"><![CDATA[123456ABCDEF]]></COLUMN>
<COLUMN NAME="ATTR2"><![CDATA[0.0.0.0]]></COLUMN>
<COLUMN NAME="ATTR3"><![CDATA[Hello World]]></COLUMN>
<COLUMN NAME="ATTR4"><![CDATA[Lorem ipsum]]></COLUMN>
<COLUMN NAME="ATTR5"><![CDATA[This is some text]]></COLUMN>
</ROW>
</RESULTS>
这是我的 PowerShell 到目前为止的样子:
PowerShell
$xmlpath = 'Path\To\XML\File.xml'
$xmldata = [xml](Get-Content $xmlpath)
$xmldata.RESULTS.ROW.COLUMN | Select | Where-Object {$_.NAME -eq "ATTR3"}
这是结果:
结果
ATTR3 Hello World
我想只检索“Hello World”,但我的脚本也在检索属性名称 (ATTR3)。我错过了什么?
期望结果示例
Hello World
为了社区的参考,下面提供了 Santiago Squarzon 的解决方案:
解决方案
$xmldata.RESULTS.ROW.COLUMN.Where{ $_.NAME -eq "ATTR3"}.'#cdata-section'