我需要在每个节点上方插入一个xml注释XComment。与此问题Using XPath to access comments a flat hierachy相同。 Linq中//comment()[following-sibling::*[1][self::attribute]]的等价金额是多少?

对我来说,一个用例是这样的:

<root>
 <node id="1">
  <element>test</element>
 </node>
 <!-- comment here: TODO: check if ok -->
 <node id="2">
  <element>is this ok?</element>
 </node>
</root>


抱歉,似乎有误会。我有一个xml文件,在使用Linq和lambda表达式选择节点后,需要添加XComment。这意味着我加载一个xml,在root下选择一个节点并添加XComment。

最佳答案

尝试这个:-

XDocument xdoc = XDocument.Load(@"YourXMl.xml");
xdoc.Descendants("node").FirstOrDefault(x => (string)x.Attribute("id") == "2")
                        .AddBeforeSelf(new XComment("comment here: TODO: check if ok"));
xdoc.Save(@"YourXML.xml");


在这里,您需要在filter子句中传递要添加注释的条件。请注意,由于我使用了FirstOrDefault,如果不匹配,您可能会得到null引用异常,因此您必须在添加注释之前检查null。

关于c# - 使用Linq to XML在节点之前插入XComment,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29072823/

10-09 14:40