使用我的c#应用程序,我需要编写一个xpath,检查具有属性alias
的节点是否包含值title
或keywords
,包含字符串值{{1 }}返回knowledge
,alias
的节点值。
我的样本xml如下。我将需要xml
中的值description
required description
我正在尝试这些线路,但它似乎无法正常工作
<?xml version="1.0" encoding="UTF-8"?>
<nodes>
<node>
<data alias="title">knowledge is power</data>
<data alias="description">required description</data>
<data alias="keywords">knowledge, power</data>
</node>
<node>
<data alias="title">Another title</data>
<data alias="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit </data>
<data alias="keywords">Lorem, Ipsum</data>
</node>
</nodes>
答案 0 :(得分:1)
您需要在or:
的两侧指定@aliasif (xdoc.SelectNodes("nodes/node/data[@alias='title' or @alias='keywords']/[contains(., 'knowledge')]").Count > 0)
答案 1 :(得分:0)
string[] text = new string[10];
if (xDoc.SelectNodes("nodes/node/data[@alias='title' or @alias='keywords'][contains(text(),'knowledge')]").Count > 0)
{
var xmlNodes = xDoc.SelectNodes("nodes/node/data[@alias='title' or @alias='keywords'][contains(text(),'knowledge')]");
int i=-1;
foreach (XmlNode item in xmlNodes)
{
i++;
text[i] = item.InnerText.ToString();
}
}