通过以字符串开头的属性在xml中查找节点

时间:2018-03-05 13:54:30

标签: c# xml

我有大的xml。 xml的节点具有带有valus的属性id,如下所示:“1_32434”,“2_45656”。使用此代码:

var node = myXml.XPathSelectElement(string.Format("//*[starts-with(@id,\"{0}_\"))", someValue));

我正在尝试查找属性id以“someValue_”开头的所有节点,但是我收到错误,表示存在无效令牌。

2 个答案:

答案 0 :(得分:0)

打开和关闭括号之间不匹配,尝试用']'替换最后')'

string.Format("//*[starts-with(@id,\"{0}_\")]", someValue)

答案 1 :(得分:0)

我并不为这个xpath感到骄傲。但它应该给你所有节点,无论是否启动id。如果您一次只需要一个id。你应该只为你当前的xpath添加一个结束括号。

"//*[number(substring-before(@id,"_"))<10 and number(substring-after(@id,"_"))]"

一些示例XML将非常感激。