将字符串转换为 xml 节点

本文关键字:xml 节点 转换 字符串 | 更新日期: 2023-09-27 17:56:48

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

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

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

任何解决方案

将字符串转换为 xml 节点

格式正确的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);