2012-03-21 7 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> 

Soy un novato de Powershell y encuentro una pregunta sobre xml y la tabla de formatos. Dado el archivo xml anterior. Si me quedo por debajo de secuencia de comandos para mostrar las entradas en una tabla, el valor de "número", "cerrado" no se pudo demostrarPowershell: cómo usar Format-Table con datos XML

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

de devolución:

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

Es la única forma que tengo de use foreach y selectSingleNode("ticket").get_InnerXml() para obtener todos los valores?

Gracias.

Respuesta

5

Si observa que esos nodos tienen atributos, deberá acceder a los datos del nodo. intente lo siguiente:

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

Gracias. Esto es perfecto. – seanbun