2011-05-19 170 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);