2009-08-13 34 views
12

Estoy teniendo dificultades para leer un archivo XML con Cdata dentro.¿Cómo se lee CDATA en un archivo XML con PowerShell?

en $ xmlsource

<list> 
    <topic> 
    <topicTitle>Test</topicTitle> 
    <topicDetail><![CDATA[<br>randomHTMLhere</br>]]></topicDetail> 
    </topic> 
</list> 

PowerShell

[xml]$xml = get-content $xmlsource  

foreach ($topic in $xml.list) { 
    $topic.topicTitle 
    $topic.topicDetail 
} 

$ topic.topicDetail será nula, mientras que $ topic.topicTitle no lo será. ¿Algunas ideas?

Respuesta

21

$topic.topicDetail."#cdata-section"

o

$topic.topicDetail.InnerText

+0

Gracias! Luego utilicé .get_FirstChild(). Get_Data() para acceder a él. – puttputt

+2

Agradable. Tenga en cuenta que también puede * establecer * CDATA de esa manera: '$ topic.topicDetail." # Cdata-section "=" foo "... $ xml.Save ($ path)' –