0

これは一日中私を怒らせています。xdocument があり、単に値を変更したいだけです。

xmlは次のようになります

<session>
  <immediate>
<pivot name="test">
  <axes>
    <axis position="SLICERS">
      <attribute name="Book">
        <selection value="Book_Name" type="Book" />
      </attribute>
      <attribute name="Result Namespace">
        <selection value="blah blah" />
      </attribute>
      <attribute name="Date">
        <selection value="2012-05-16" />
      </attribute>
      <attribute name="Measure">
        <selection value="123" />
      </attribute>
    </axis>
    <axis position="SIDE">
      <attribute name="ttx" mode="ALL"></attribute>
    </axis>
    <axis position="TOP">
      <attribute name="hhy" mode="ALL"></attribute>
    </axis>
  </axes>
  <source name="risk" />
  <aggregate expression="SUM(Money Value)" />
  <grid-processor name="errors" />
</pivot>
  </immediate>
</session>

私がやりたいことは、単に変更することです

<attribute name="Book">
        <selection value="Book_Name" type="Book" />
</attribute>

<attribute name="Book">
    <selection value="CorrectBookName" type="Book" />
</attribute>

LINQ を使用したいのですが、XElement を試しました。ブロックは取得できますが、更新できません。

        XElement amend = xdoc.Descendants("attribute").First(el => (String)el.Attribute("selection") == "value");

誰にもアイデアはありますか?

4

1 に答える 1

0

XElement.SetAttributeValue() メソッドを使用する必要があります。属性を変更したい要素を選択し、それに対して SetAttributeValue() を呼び出すだけです。指定した名前の属性がない場合、新しい属性が作成されます。それ以外の場合、既存の属性の値は新しい属性に置き換えられます。例と詳細については、msdn を参照してください: http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.setattributevalue.aspx

于 2012-07-23T15:15:15.817 に答える