XPath вопрос множественного выбора - PullRequest
1 голос
/ 01 декабря 2009
var assets1 = data.SelectNodes("//asset[@id]=" + oldBinaryAssetId);
var assets2 = data.SelectNodes("//Asset[@id]=" + oldBinaryAssetId);

Можно ли сделать 1 запрос xpath из двух приведенных выше?

1 Ответ

4 голосов
/ 01 декабря 2009

Ваш XPath неправильный, чтобы быть джин. Вы, вероятно, имеете в виду:

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

Чтобы объединить оба варианта (верхний и нижний регистр), вы можете использовать:

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

или

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

Если у вас есть способ избежать оператора //, я рекомендую это сделать. Когда вы это сделаете, ваши запросы будут быстрее, хотя это может быть заметно только при больших входных документах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...