2011-05-19 237 views
1

我有字符串,它包含從PHP文件返回的xml節點。 這就像將字符串轉換爲xml節點

<a>1</a><b>0</b><c>4</c>.............. 

現在我需要找出值的每個節點都,即A,B,C ...... 而這個字符串加載到XmlDocument的我得到錯誤,如「有多重根元素「。

回答

5

well-formed XML的基本規則之一是它具有單個根節點。隨着你的榜樣,你有多個根:

<a>1</a> 
<b>0</b> 
<c>4</c> 

爲了使其充分形成,你將不得不作出這些元素單根的孩子:

<root> 
    <a>1</a> 
    <b>0</b> 
    <c>4</c> 
</root> 

的XML文檔不是很好-formed並不是一個真正的XML文檔,你會發現沒有XML解析器能夠讀取它!

3

任何溶液包裝在一個根元素。 E.g:

<a>1</a><b>2</b>...

<root><a>1</a><b>2</b>...</root>

然後計算正常。

2

這是因爲每個元素都在同一水平。需要有一個包含它們的「根」。將它們包裝在任意節點中,例如<root>...</root>,然後將新字符串加載到xmlDocument。

2

這看起來像XML,但它不是有效的XML。在XML中,您有一個包含所有其他元素的根元素。

所以,如果你有str該字符串,這樣做:

str = String.Format("<root>{0}</root>", str);