您好我需要从字符串创建一个XElement,可以是xml或plain string。
此代码
var doc = new XDocument(
new XElement("results", "<result>...</result>")
);
产生这个
<results><result></result></results>
但如果字符串是XML,那么我需要正确的XMl
<results><result>...</result></results>
XElement.Parse()之外的任何想法,因为如果是纯文本,它会抛出异常吗?
答案 0 :(得分:1)
请参阅Is there an XElement equivalent to XmlWriter.WriteRaw?
上的答案基本上,只有当您知道内容已经是有效的XML 时才替换内容。
var d = new XElement(root, XML_PLACEHOLDER);
var s = d.ToString().Replace(XML_PLACEHOLDER, child);
这种方法也可能更快。
答案 1 :(得分:0)
我不知道是否有其他方法,它也看起来不是最好的方式,但你可以这样做:
object resultContent;
if (condition)
{
//if content is XmlElement
resultContent = new XElement("result", "....");
}
else
{
resultContent = "Text";
}
XDocument xDoc = new XDocument(new XElement("results", resultContent));
答案 2 :(得分:0)
这样做:
XElement.Parse(String.Format("<Results>{0}</Results>",possibleXMLString));
...之前有人反对使用OP提到的.Parse()方法,请注意这不是提到的用法。