2010-10-03 66 views
5

我想知道我怎麼能測試休耕情況:如何測試一個XML元素裏面是否有文本元素?

<foo> 
    <bla1>xxx</bla1> 
    <bla2>yyy</bla2> 
    <bla3>zzz</bla3> 
</foo> 

在while(reader.Read()),我在XmlNodeType.Element下降,當我在foo和BLA1是, bla2,bla3 ...在xxx,yyy,zzz中放入.TextElement時。但是,我可以測試bla的內部是否有文本值嗎?

非常感謝

佩德羅Dusso

回答

2

不,你不能,只要你使用一個XmlReader

XmlReader類通過XML層面實現了只向前遊標。因此,您只能在當前位置找到的XML節點上操作。

在你的情況下,這意味着你將無法在沒有先迭代它們的情況下檢查「bla」節點的內容。

+0

你是對的,但我實際上使用XmlTextReader,對不起,我沒有寫過。 – 2010-10-03 21:43:43

+0

XmlTextReader的原理相同。僅前向光標將只允許您檢查當前正在訪問的節點。如果您想查詢XML層次結構,則必須將其加載到內存DOM結構中,例如XmlDocument類或XDocument類。 – 2010-10-04 12:47:38

+0

Yeap ...我明白了。我將不得不考慮它。我們應該處理一個700MB的XML文件,所以我無法將它加載到內存中......非常感謝! – 2010-10-05 21:14:24

0

如果您正在使用一個XmlTextReader您可以使用屬性IsEmptyElement

+0

這實際上不工作......當它成爲真時,IsEmptyElement只適用於。無論如何感謝... – 2010-10-03 21:41:51

0

reader.HasValue有什麼問題? (或string.IsNullOrEmpty(reader.Value))?

相關問題