2009-08-13 11 views
12

J'ai du mal à lire un fichier XML avec Cdata à l'intérieur.Comment lire CDATA dans un fichier XML avec PowerShell?

dans SourceXML de $

<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 $ sera nulle tandis que $ topic.topicTitle ne sera pas. Des idées?

Répondre

21

$topic.topicDetail."#cdata-section"

ou

$topic.topicDetail.InnerText

+0

Merci! J'ai ensuite utilisé .get_FirstChild(). Get_Data() pour y accéder. – puttputt

+2

Nice. Notez que vous pouvez aussi * mettre * CDATA comme ça: '$ topic.topicDetail." # Cdata-section "=" foo "... $ xml.Save ($ path)' –