【发布时间】:2011-08-28 15:42:12
【问题描述】:
我有字符串,它包含从 PHP 文件返回的 xml 节点。 就像
<a>1</a><b>0</b><c>4</c>..............
现在我需要找出每个节点的值,即a,b,c...... 在将此字符串加载到 xmlDocument 时,我收到类似“有多个根元素”的错误。
任何解决方案
【问题讨论】:
标签: c# php xml xmldocument
我有字符串,它包含从 PHP 文件返回的 xml 节点。 就像
<a>1</a><b>0</b><c>4</c>..............
现在我需要找出每个节点的值,即a,b,c...... 在将此字符串加载到 xmlDocument 时,我收到类似“有多个根元素”的错误。
任何解决方案
【问题讨论】:
标签: c# php xml xmldocument
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 解析器能够读取它!
【讨论】:
将其包装在根元素中。例如:
来自<a>1</a><b>2</b>...
致<root><a>1</a><b>2</b>...</root>
然后正常计算。
【讨论】:
那是因为每个元素都处于同一级别。需要有一个包含所有这些的“根”。将它们包装在任意节点中,例如<root>...</root>,然后将新字符串加载到 xmlDocument。
【讨论】:
这看起来像 XML,但它不是有效的 XML。在 XML 中,您有一个包含所有其他元素的根元素。
所以,如果您在 str 中有该字符串,请执行以下操作:
str = String.Format("<root>{0}</root>", str);
【讨论】: