C# 4.0 如何编写xpath以将多个属性与特定于值的值进行匹配
我正在写这段代码C# 4.0 如何编写xpath以将多个属性与特定于值的值进行匹配,c#-4.0,C# 4.0,我正在写这段代码 ("//series/@*[Place='" + place + "'] and [Date='"+date+"']") 我的XML如下所示: <series> <Note roll="2" place="OFFICE" Date="12/6/2014 12:00:00 AM"> <value>abc</value> </Note> <Note roll="2" place="bank" Date="11/6/
("//series/@*[Place='" + place + "'] and [Date='"+date+"']")
我的XML如下所示:
<series>
<Note roll="2" place="OFFICE" Date="12/6/2014 12:00:00 AM">
<value>abc</value>
</Note>
<Note roll="2" place="bank" Date="11/6/2014 12:00:00 AM">
</Note>
<value>abc</value>
</series>
abc
abc
我想查找值为place=office
和date=12/6/2014
的所有节点,
但它没有给出正确的输出。我做错了什么?您不需要
和
操作符,只需将条件放在彼此之后即可
与其选择具有特定值的属性(@*[…]
),不如选择具有特定属性值的节点(*[…]
)
例如:
/series/*[@place='bank'][@Date='11/6/2014 12:00:00 AM']
因此,在代码中:
("/series/*[@place='" + place + "'][@Date='" + date + "']")
工作示例:
XmlDocument doc = new XmlDocument();
doc.LoadXml("<series><Note roll=\"2\" place=\"OFFICE\" Date=\"12/6/2014 12:00:00 AM\"><value>abc</value></Note><Note roll=\"2\" place=\"bank\" Date=\"11/6/2014 12:00:00 AM\"></Note><value>abc</value></series>");
string place = "bank";
string date = "11/6/2014 12:00:00 AM";
XmlNodeList list = doc.SelectNodes("/series/*[@place='" + place + "'][@Date='" + date + "']");
Console.WriteLine(list.Count); // outputs 1
XmlDocument doc=新的XmlDocument();
doc.LoadXml(“abcabc”);
字符串place=“bank”;
字符串日期=“11/6/2014 12:00:00 AM”;
XmlNodeList=doc.SelectNodes(“/series/*[@place='”+place+'][@Date='“+Date+']”);
Console.WriteLine(list.Count);//产出1
XML无效。您有多个根元素,Note
元素没有终止。谢谢@Guffa。但在终止note元素后,我仍然没有得到正确的输出。使用正确的XML,可以针对不同的XPath表达式对其进行测试。@Guffa,你能给我这样做的代码(XPath)吗?谢谢你,伙计,但这在我的情况下不起作用:-)@zombie:当我用你展示的XML测试它时,它工作得非常好。如果它在您的情况下不起作用,那么您将无法显示某些内容。它应该是“//series[@place='“+place+'”]|//series[@Date='“+Date+'”]。。最后问题解决了。.thanx for ur support buddy.:-@zombie:这将为您提供与地点或日期匹配的项目,而不是与地点和日期匹配的项目。u r ryt,代码正在计算所有值,而不是检查条件