将字符串转换为 xml 节点

Posted

技术标签:

【中文标题】将字符串转换为 xml 节点【英文标题】:Converting string to xml nodes 【发布时间】:2011-08-28 15:42:12 【问题描述】:

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

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

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

任何解决方案

【问题讨论】:

【参考方案1】:

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 解析器能够读取它!

【讨论】:

【参考方案2】:

将其包装在根元素中。例如:

来自&lt;a&gt;1&lt;/a&gt;&lt;b&gt;2&lt;/b&gt;...

&lt;root&gt;&lt;a&gt;1&lt;/a&gt;&lt;b&gt;2&lt;/b&gt;...&lt;/root&gt;

然后正常计算。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

以上是关于将字符串转换为 xml 节点的主要内容,如果未能解决你的问题,请参考以下文章

如何将 XML 节点内容转换为 VBA 中的字符串?

XSLT:如何将 XML 节点转换为字符串

java将字符串转换为xml并解析节点[重复]

Android:解析 XML DOM 解析器。将子节点转换为字符串

.NET将XML转换成数组问题

在 Groovy 中将字符串 XML 片段转换为文档节点