2012-03-21 44 views
5
<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> 

我是Powershell的新手,在XML和格式表上找到一个问题。给出上面的xml文件。如果我运行下面的脚本在表中显示的机票,“数字”的价值,“封闭”无法显示Powershell:如何使用带有XML数据的格式表

$t = [xml](new-object system.net.webclient).downloadstring($xmlfilepath) 
$t.tickets.ticket | Format-Table -Property title, state, user-name, url, number, closed 

返回:

title   state  user-name  number  closed          
-----   -----  ---------  ------  ------         
title text 1  resolved Username  number  closed 
title text 2  resolved Username  number  closed 

是不是我要的唯一途径使用foreachselectSingleNode("ticket").get_InnerXml()来获得所有的值?

谢谢。

回答

5

如果您注意到这些节点具有属性,那么您将需要获取该节点的数据。请尝试以下操作:

$t.tickets.ticket | Format-Table -AutoSize -Property title, state, user-name, url, 
@{Label="number"; Expression={$_.number."#text"}}, 
@{Label="closed"; Expression={$_.closed."#text"}} 
+0

谢谢。太棒了。 – seanbun 2012-04-12 00:09:08

相关问题