使用 linq to xml 在 xml 文档中创建节点(如果不存在)

ter*_*tyl 6 c# xpath linq-to-xml

我正在使用 XPathSelectElement 方法查询 xml 文档。

如果该节点不存在,我想在同一文档中插入具有该路径的节点。如果父节点不存在,也应该创建它们。有没有一种简单的方法可以做到这一点,而无需循环检查父母是否存在?(使用XPath添加新节点)

Tim*_*uri 1

不,没有...这与您在文件系统上查找目录没有什么不同,并且必须确保所有父目录都在那里。

例子:

if (Directory.Exists(@":c:\test1\test2\blah blah\blah blah2")) ...
Run Code Online (Sandbox Code Playgroud)

确实,Directory.CreateDirectory 方法将创建子项显示所需的所有父项,但 XML 中没有等效项(使用 .NET 类,包括 LINQ-to-XML)。

您必须手动循环遍历每一个。我建议您创建一个名为“EnsureNodeExists”的辅助方法来为您完成此操作:)