向XElement添加XML字符串

本文关键字:字符串 XML 添加 XElement | 更新日期: 2023-09-27 18:13:58

嗨,我需要从字符串创建一个XElement,该字符串可以是xml也可以是普通字符串。

这段代码

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

生产这

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

但是如果字符串是XML,那么我需要合适的XML

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

除了XElement.Parse()之外,还有什么想法吗?因为如果它是纯文本,它会抛出异常。

向XElement添加XML字符串

看我的回答是否有一个XElement等价于XmlWriter.WriteRaw?

本质上,只有当您知道内容已经是有效的XML时,才替换占位符。

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

我不知道是否有其他方法,这看起来也不是最好的方法,但你可以这样做:

object resultContent;
if (condition)
{
    //if content is XmlElement
    resultContent = new XElement("result", "....");
}
else
{
    resultContent = "Text";
}
XDocument xDoc = new XDocument(new XElement("results", resultContent));

这样做如何:

XElement.Parse(String.Format("<Results>{0}</Results>",possibleXMLString));

…在有人反对OP提到的使用. parse()方法之前,请注意,这不是提到的用法。