Powershell: How to use Format-Table with XML data
10,919
If you notice those nodes have attributes so you will need to get to the data of the node. try the following:
$t.tickets.ticket | Format-Table -AutoSize -Property title, state, user-name, url,
@{Label="number"; Expression={$_.number."#text"}},
@{Label="closed"; Expression={$_.closed."#text"}}
Author by
seanbun
kentico/asp.net c# developer. facebook developer, photo-taking lover. christian, father of a new-born baby.
Updated on June 27, 2022Comments
-
seanbun almost 2 years
<tickets type="array"> <ticket> <assigned-user-id type="integer">123</assigned-user-id> <closed type="boolean">true</closed> <creator-id type="integer">177522</creator-id> <number type="integer">306</number> <state>resolved</state> <tag nil="true"/> <title> title text 1 </title> <updated-at type="datetime">2012-03-14T13:13:11+11:00</updated-at> <user-id type="integer">96438</user-id> <version type="integer">3</version> <user-name>Username</user-name> </ticket> </tickets>
I am a Powershell newbie and find a question on xml and format-table. Given above xml file. If I run below script to display tickets in a table, the value of "number", "closed" could not be shown
$t = [xml](new-object system.net.webclient).downloadstring($xmlfilepath) $t.tickets.ticket | Format-Table -Property title, state, user-name, url, number, closed
Return:
title state user-name number closed ----- ----- --------- ------ ------ title text 1 resolved Username number closed title text 2 resolved Username number closed
Is it the only way I have to use
foreach
andselectSingleNode("ticket").get_InnerXml()
to get all the values?Thank you.