我正在尝试使用属性类获取所有子节点。我的代码是
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而不是值,那么这段代码的输出取决于可变值。
答案 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