這讓我很生氣,我一直在嘗試這個爲期2天。Xdocument修改所有匹配的屬性
我基本上想要基於名稱來替換值。
我有XML如下:
<session>
<immediate>
<diff name="TEST_DIFF">
<pivot name="(Original)">
<grid-processor name="mdStoredShape"/>
<axes>
<axis position="SLICERS">
<attribute name="Result Namespace" mode="INCLUSIVE">
<selection value="$NAMESPACE$"/>
</attribute>
<attribute name="Date" mode="INCLUSIVE">
<selection value="$DATEFROM$"/>
</attribute>
<attribute name="Book" mode="INCLUSIVE">
<selection value="$BOOK_NAME$" type="Book Hierarchy"/>
</attribute>
<attribute name="Measure" mode="INCLUSIVE">
<exclude value="PV"/>
</attribute>
<attribute name="Risk Source System" mode="INCLUSIVE">
<selection value="gdsldn"/>
</attribute>
<attribute name="Is Error">
<selection value="false"/>
</attribute>
</axis>
<axis position="DISCRIMINATOR">
<attribute name="Book" mode="ALL"/>
<attribute name="Book" mode="ALL"/>
<attribute name="Measure" mode="ALL"/>
</axis>
<axis position="RESULT">
<attribute name="SUM(Money Value In(GBP))"/>
<attribute name="COUNT_DISTINCT(Book)"/>
</axis>
</axes>
</pivot>
<pivot name="(New)">
<grid-processor name="mdStoredShape"/>
<axes>
<axis position="SLICERS">
<attribute name="Result Namespace" mode="INCLUSIVE">
<selection ref="$NAMESPACE$"/>
</attribute>
<attribute name="Date" mode="INCLUSIVE">
<selection ref="$DATETO$"/>
</attribute>
<attribute name="Book" mode="INCLUSIVE">
<selection value="$BOOK_NAME$" type="Book Hierarchy"/>
</attribute>
<attribute name="Measure" mode="INCLUSIVE">
<exclude ref="PV"/>
</attribute>
<attribute name="Risk Source System" mode="INCLUSIVE">
<selection value="gdsldn"/>
</attribute>
<attribute name="Is Error">
<selection value="false"/>
</attribute>
</axis>
<axis position="DISCRIMINATOR">
<attribute name="Book" mode="ALL"/>
<attribute name="Book" mode="ALL"/>
<attribute name="Measure" mode="ALL"/>
</axis>
<axis position="RESULT">
<attribute name="SUM(Money Value In(GBP))"/>
<attribute name="COUNT_DISTINCT(Book)"/>
</axis>
</axes>
<source name="risk"/>
</pivot>
</diff>
</immediate>
</session>
,我想用實際值替換所有的$ namespace $值。
有人可以幫忙嗎?
更多的信息,我用
XElement xeNS = Xdoc.Descendants("selection").First(el => (String)el.Attribute("value").Value == "$NAMESPACE$");
xeNS.SetAttributeValue("value", ns);
但這隻能替換第一個實例。我希望linq查詢然後循環並應用更改?
我沒有在Xdocument中的方法? – user1156000 2012-07-25 11:51:14
我打算使用xml作爲字符串並使用string.Replace。無論如何,你的錯誤是在第一。首先改變到哪裏 – 2012-07-25 11:53:31