如何添加现有的XML字符串转换成的XElement?
此代码
var doc = new XDocument(
new XElement("results", "<result>...</result>")
);
当然,这产生
<results><result></result></results>
但我需要这个
<results><result>...</result></results>
有任何想法吗?
这应该工作:
var xmlString = "<result>sometext</result>";
var xDoc = new XDocument(new XElement("results", XElement.Parse(xmlString)));
通过萨尼·辛格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));
见我的答案上是否有一个的XElement相当于XmlWriter.WriteRaw?
从本质上讲, 只有当你知道它已经有效的XML替换为内容的占位符。
var d = new XElement(root, XML_PLACEHOLDER);
var s = d.ToString().Replace(XML_PLACEHOLDER, child);
这种方法也可能比解析速度更快XElement.Parse
。