如何使用C#

时间:2015-06-21 06:05:46

标签: 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属性的值。如果我想使用变量说x而不是值,那么这段代码的输出取决于可变值。

2 个答案:

答案 0 :(得分: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;
    }
} 

答案 1 :(得分:0)

或者,您可以使用String.Format()将动态子字符串值填充到XPath字符串中。这个,恕我直言,最好避免诸如缺少单引号之类的问题(双引号之前/之后的单引号很难阅读,你可能不会注意到它丢失时):

year="2015"
for f in $myFiles
do
    if [ x${f##*${year}.jpg} = x -o x${f##*${year}.png} = x ]
    then
        echo $f
    fi
done