-->

如何添加现有的XML字符串转换成的XElement(How to add an existing X

2019-07-17 20:05发布

如何添加现有的XML字符串转换成的XElement?

此代码

        var doc = new XDocument(
            new XElement("results", "<result>...</result>")
        );

当然,这产生

  <results>&lt;result&gt;&lt;/result&gt;</results>

但我需要这个

  <results><result>...</result></results>

有任何想法吗?

Answer 1:

这应该工作:

var xmlString = "<result>sometext</result>";
var xDoc = new XDocument(new XElement("results", XElement.Parse(xmlString)));


Answer 2:

通过萨尼·辛格Huttunen回答让我在正确的轨道上,但只允许在结果元素一个结果元素。

var xmlString = "<result>sometext</result><result>alsotext</result>";

失败与System.Xml.XmlException

有多个根元素。

我的结果元素移动到该字符串文本解决了这个

var xmlString = "<results><result>sometext</result><result>alsotext</result></results>";

使得它只有一个根元素,然后直接加入分析的字符串到父元素,如下所示:

parent.Add(XElement.Parse(xmlString));


Answer 3:

见我的答案上是否有一个的XElement相当于XmlWriter.WriteRaw?

从本质上讲, 只有当你知道它已经有效的XML替换为内容的占位符。

var d = new XElement(root, XML_PLACEHOLDER);
var s = d.ToString().Replace(XML_PLACEHOLDER, child);

这种方法也可能比解析速度更快XElement.Parse



文章来源: How to add an existing Xml string into a XElement