将字符串转换为xml节点

时间:2011-05-19 07:29:18

标签: c# php xml xmldocument

我有字符串,它包含从PHP文件返回的xml节点。 就像

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

现在我需要找出每个节点有什么价值,即a,b,c ...... 将此字符串加载到xmlDocument时,我收到的错误如“有多个根元素”。

任何解决方案

4 个答案:

答案 0 :(得分: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文档根本就不是一个XML文档,您会发现没有XML解析器能够读取它!

答案 1 :(得分:3)

将其包裹在根元素中。 E.g:

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

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

然后正常计算。

答案 2 :(得分:2)

这是因为每个元素都处于同一级别。需要有一个“根”包围所有这些。将它们包装在任意节点中,比如<root>...</root>,然后将新字符串加载到xmlDocument。

答案 3 :(得分:2)

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

因此,如果您在str中有该字符串,请执行以下操作:

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