【问题标题】:How to Convert XElement to XComment (C#)如何将 XElement 转换为 XComment (C#)
【发布时间】:2014-12-15 08:44:00
【问题描述】:

我的第一个问题...

我正在解析 xml 文件(使用 c# 作为 Xdocument)并尝试禁用一些 xElement 对象。 标准方式(我工作的地方)是让它们显示为 xComment。

除了将其解析为文本文件之外,我找不到任何方法。

结果应如下所示:

<EnabledElement>ABC</EnabledElement>
<!-- DisabledElement></DisabledElement-->

【问题讨论】:

    标签: c# linq-to-xml xelement


    【解决方案1】:

    嗯,它不像您要求的那样相当,但这确实用注释版本替换了一个元素:

    using System;
    using System.Xml.Linq; 
    
    public class Test
    {
        static void Main()
        {
            var doc = new XDocument(
                new XElement("root",
                    new XElement("value1", "This is a value"),
                    new XElement("value2", "This is another value")));
    
            Console.WriteLine(doc);
    
            XElement value2 = doc.Root.Element("value2");
            value2.ReplaceWith(new XComment(value2.ToString()));
            Console.WriteLine(doc);
        }
    }
    

    输出:

    <root>
      <value1>This is a value</value1>
      <value2>This is another value</value2>
    </root>
    
    <root>
      <value1>This is a value</value1>
      <!--<value2>This is another value</value2>-->
    </root>
    

    如果您真的希望评论打开和关闭&lt;&gt; 替换元素中的评论,您可以使用:

    value2.ReplaceWith(new XComment(value2.ToString().Trim('<', '>')));
    

    ...但我个人不会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多