Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何编写xpath以将多个属性与特定于值的值进行匹配_C# 4.0 - Fatal编程技术网

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,代码正在计算所有值,而不是检查条件