XPath问题多选

时间:2009-12-01 12:07:47

标签: xpath

var assets1 = data.SelectNodes("//asset[@id]=" + oldBinaryAssetId);
var assets2 = data.SelectNodes("//Asset[@id]=" + oldBinaryAssetId);

是否可以对上述两个进行1次xpath查询?

1 个答案:

答案 0 :(得分:4)

你的XPath是杜松子酒的错误。你可能意味着:

data.SelectNodes("//Asset[@id = '" + oldBinaryAssetId + "']");

要结合两种变体(大写和小写),您可以使用:

data.SelectNodes("//*[(name() = 'Asset' or name() = 'asset') and @id = '" + oldBinaryAssetId + "']");

data.SelectNodes("(//Asset | //asset)[@id = '" + oldBinaryAssetId + "']");

如果您有办法避开//运营商,我建议您这样做。当你这样做时,你的查询会更快,尽管这可能只对大型输入文档很明显。