Question:
I’m pretty new to PowerShell and I’m struggling to read this XML data. The XML looks something like this: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>
This is what my PowerShell looks like so far:PowerShell
$xmlpath = 'Path\To\XML\File.xml'
$xmldata = (Get-Content $xmlpath)
$xmldata.RESULTS.ROW.COLUMN | Select | Where-Object {$_.NAME -eq "ATTR3"}
And this is the result:Result
ATTR3 Hello World
I would like to just retrieve “Hello World,” but my script is also retrieving the attribute name (ATTR3). What am I missing?Example of desired result
Hello World
Answer:
For the community’s reference, Santiago Squarzon’s solution is provided below:Solution
$xmldata.RESULTS.ROW.COLUMN.Where{ $_.NAME -eq "ATTR3"}.'#cdata-section'
If you have better answer, please add a comment about this, thank you!
Leave a Review