2015-06-21 78 views
0

我想要使用屬性類獲取所有子節點。我的代碼是如何使用C#在XML中使用元素屬性值獲取子節點

string xmlText = File.ReadAllText(@"G:\\car_words_xml.xml"); 
var doc = new XmlDocument(); 
doc.LoadXml(xmlText); 
var result = doc.SelectNodes("//*[@class='سوزوکی']");   
foreach (XmlNode node in result) 
{ 
foreach (XmlNode childNode in node.ChildNodes) 
{ 
textBox1.Text= textBox1.Text+ Environment.NewLine+childNode.InnerText; 
} 
} 

在這段代碼中,我給出了class屬性的值。如果我想使用變量,而不是值,那麼該代碼的輸出取決於可變值。

回答

0

您可以使用一個字符串變量並連接與XPath表達式變量像下面

string x = ...; // set the value here 
var result = doc.SelectNodes("//*[@class='" + x + "']");   
foreach (XmlNode node in result) 
{ 
    foreach (XmlNode childNode in node.ChildNodes) 
    { 
     textBox1.Text= textBox1.Text+ Environment.NewLine+childNode.InnerText; 
    } 
} 
0

或者,您可以使用String.Format()充塞動態子值到XPath字符串。恕我直言,最好避免諸如缺少單引號之類的問題(單引號直接在雙引號之前/之後,很難閱讀,而且在缺少時可能不會注意到):

var x = "سوزوکی"; 
var xpath = String.Format("//*[@class='{0}']", x); 
var result = doc.SelectNodes(xpath); 
相關問題