2012-08-14 68 views
0

我有以下配置的問題,讓我們考慮這個XML文檔:如何獲取正確的XPath表達式

<FEATURE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<LINES xmlns="namespace1"> 
    <LINE> 
    <AMOUNT>5000</AMOUNT> 
    ...... 
    </LINE> 
    <LINE> 
    <AMOUNT>6000</AMOUNT> 
    </LINE> 
</LINES> 
</FEATURE> 

我無法弄清楚如何在第一線的爲例量值修改。

我已經嘗試了很多東西,像下面這樣:

var doc = XDocument.Load(doc); 
var xmn = new XmlNamespaceManager(new NameTable()); 
xmn.AddNamespace(string.Empty, "namespace1"); 

var element = doc.XPathSelectElement("/FEATURE/LINES/LINE[1]", xmn); 

元素總是空,我想不通爲什麼。我試過這個:http://www.xmlplease.com/update-xml-linq與去除id屬性的XPath /產品/產品[1]的偉大工程...

任何意見,將不勝感激。這樣

doc.XPathSelectElement("/FEATURE/my:LINES/my:LINE[1]", xmn); 

回答

2

給默認的NS名稱

xmn.AddNamespace("my", "namespace1"); 

和寫作的XPath工作對我來說:-)

+0

我在這頭,因爲1個小時,我真的很瞎...感謝隊友 – h1ghfive 2012-08-14 14:48:02

0
XmlNodeList nodeList = root.SelectNodes("/FEATURE/LINES/LINE"); // selecting the first LINE node 
foreach(XmlNode node in nodeList) 
{ 
    if(node.Name == "AMOUNT") 
    { 
     string anyValue = "7000" 
     node.InnerText = value; 
    } 
} 
+0

是我的帖子有用嗎? @ h1ghfive – 2012-08-23 16:43:54