2009-08-13 36 views
12

Tôi đang gặp khó khăn khi đọc một tệp XML với Cdata bên trong.Cách đọc CDATA trong tệp XML bằng PowerShell?

trong $ 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 sẽ được null trong khi $ topic.topicTitle sẽ không được. Bất kỳ ý tưởng?

Trả lời

21

$topic.topicDetail."#cdata-section"

hoặc

$topic.topicDetail.InnerText

+0

Cảm ơn! Sau đó tôi đã sử dụng .get_FirstChild(). Get_Data() để truy cập nó. – puttputt

+2

Rất đẹp. Lưu ý rằng bạn cũng đặt * set * CDATA như thế: '$ topic.topicDetail." # Cdata-section "=" foo "... $ xml.Save ($ path)' –