给出以下代码:
string xml = "";
//alternativley: string xml = "<people />";
XDocument xDoc = null;
if (!string.IsNullOrEmpty(xml))
{
xDoc = XDocument.Parse(xml);
xDoc.Element("people").Add(
new XElement("person", "p 1")
);
}
else
{
xDoc = new XDocument();
xDoc.Add(new XElement("people",
new XElement("person", "p 1")
));
}
正如您所看到的,如果xml变量为空,我需要手动创建rood节点,并将该节点附加到根节点,如果不是,我将简单地添加到people元素
我的问题是,有没有办法一般性地创建文档,如果它们尚不存在,它会自动添加所有引用的节点?
答案 0 :(得分:1)
你的意思是XContainer.Element
的版本添加一个元素,如果它还没有存在?不是我知道的......虽然我猜你可以写一个:
public static XElement FindOrAdd(this XContainer container, XName name)
{
XElement ret = container.Element(name);
if (ret == null)
{
ret = new XElement(name);
container.Add(ret);
}
return ret;
}