我有一個看起來有點像這樣的XML文檔:查找和數量的連續XML元素
<root>
Maybe some text
<thing>thing can have text</thing>
<thing>it can even be on multiple
lines
</thing>
<thing>a third thing</thing>
This text resets the numbering
<thing>this thing is not part of the above list and should have number 1</thing>
<some-element-not-thing>Also resets numbering</some-element-not-thing>
<thing>this thing should also have number 1<thing/>
</root>
我需要數點<thing>
時候,他們來連續,通過給每個被稱爲「數字」的屬性。也就是說,我期望的結果是:
<root>
Maybe some text
<thing number="1">thing can have text</thing>
<thing number="2">it can even be on multiple
lines
</thing>
<thing number="3">a third thing</thing>
This text resets the numbering
<thing number="1">this thing is not part of the above list and should have number 1</thing>
<some-element-not-thing>Also resets numbering</some-element-not-thing>
<thing number="1">this thing should also have number 1<thing/>
</root>
我該如何處理這樣的事情?我看不到在XmlDocument中的元素之間查找文本的方法(但它確實讓我按順序枚舉元素,所以當遇到不是<thing>
的東西時,我可以重置編號),並且我不確定LINQ to XML是否允許我在元素之間獲取文本,因爲它只會產生元素或後代,而這兩者都不代表「鬆散文本」。 也許這個「鬆散的文本」是壞的(但顯然可以解析)XML?
編輯:我完全誤解了我自己的問題。顯然,元素之間沒有文本,這是我之後修正的錯誤的結果。我最終使用的解決方案只是枚舉節點並以這種方式改變它們的屬性(使用XML文檔並忽略空白),類似於下面的建議。我很抱歉沒有把這個問題轉到我的頭上,或者花費更多的時間進行研究。如果人們認爲這個問題沒有足夠的貢獻,我不會介意刪除它。
爲什麼要使用'XmlDocument'任何理由嗎?除非我有一個非常好的理由,否則我總是使用LINQ to XML。 –
這看起來好像不是全部有效的XML。 –
請不要只是要求我們爲您解決問題。告訴我們你是如何試圖自己解決問題的,然後向我們展示結果是什麼,並告訴我們爲什麼你覺得它不起作用。請參閱「[您嘗試過什麼?](http://whathaveyoutried.com/)」,以獲得一篇您最近需要閱讀的優秀文章。 –