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

问题描述 投票:2回答:2

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

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

我试图找到所有具有以“someValue_”开头的属性id的节点,但是我得到一个错误,即存在无效的令牌。

c# xml
2个回答
0
投票

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

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

0
投票

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

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

一些示例XML将非常感激。

© www.soinside.com 2019 - 2024. All rights reserved.