题
如何将现有的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)));
其他提示
Sani Singh 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
解析它更快。
不隶属于 StackOverflow