【问题标题】:How can i replace tags in xml using c#如何使用 c# 替换 xml 中的标签
【发布时间】:2013-09-09 09:51:32
【问题描述】:

我想替换 C# 中的 XML 标记值。 这是一些示例 XML:

<Dr.Watson>
 <Bugs>
  <Bug Name="Bug.add --> AAAAAAAAAAAA">
    <criteria>
      <includeFilterSets>
        <filterSet>
          <filter>
            <filterName>PRODUCT_NAME</filterName>
            <operator>
              <name>Equals</name>
            </operator>
            <value>Dr.Watson</value>
          </filter>
        </filterSet>
      </includeFilterSets>
      <grouping>
        <groupBy>
          <name>STATUS</name>
        </groupBy>
      </grouping>
      <caseSensitive>false</caseSensitive>
      <entityToSearch>
        <name>BUG</name>
      </entityToSearch>
    </criteria>
  </Bug>
 </Bugs>
</Dr.Watson>

我想替换&lt;groupBy&gt;标签下的标签&lt;name&gt;STATUS&lt;/name&gt;

这是我现有的代码:

XDocument xdoc1 = XDocument.Load(FilePath_EXPRESS_API_InputFile);
XElement one = xdoc1.Descendants("/Dr.watson/Bugs/Bug/grouping/groupBy").First();
one.SetAttributeValue("name", "ID"); xdoc1.Save(FilePath_EXPRESS_API_InputFile); 

我做错了什么?

【问题讨论】:

  • 看起来你有很多反对意见。我建议让我们知道您已经尝试过什么。我们在这里提供帮助,而不是为您编写代码。
  • @TheWaxMann 这是我到目前为止的代码:XDocument xdoc1 = XDocument.Load(FilePath_EXPRESS_API_InputFile); XElement one = xdoc1.Descendants("/Dr.watson/Bugs/Bug/grouping/groupBy").First(); one.SetAttributeValue("name", "ID"); xdoc1.Save(FilePath_EXPRESS_API_InputFile);
  • 谢谢,我已编辑您的问题以包含代码。投反对票的人希望能删除他们的反对票并给你一些帮助。

标签: c# xml tags


【解决方案1】:

首先,&lt;name&gt;STATUS&lt;/name&gt; 不是一个属性,它是一个元素。 因此你应该使用SetValue 方法来改变它的值。

其次,不能在Descendants 方法中使用XPath。有关替代方案,请参阅this question

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 2012-09-01
    • 1970-01-01
    • 2017-12-12
    • 2013-05-21
    • 2013-07-03
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多