XPATH: проверьте, содержит ли узел xml определенные символы или строки - PullRequest
1 голос
/ 12 апреля 2011

Представьте себе этот XML-файл (извините за больной пример !!)

<DOC>
<Test>
    <Name>1 vs 100 Pre pre History</Name>
    <Type>Dinasors</Type>
</Test>

<Test>
    <Name> 1 vs 100 Post moderns</Name>
    <Type>Aliens</Type>
</Test>
</Doc>

Идея заключается в возвращении значения типа, проверяя, содержит ли узел Name определенный символ или строку.Например, я хочу запрос XPath, например:

/Doc//Test[contains "Pre" and "History" and 1]/Type

Это проверка, если Test содержит «Pre» и «History» и номер 1, что будет запрос xpath?Ало, мне нравится этот запрос, чтобы не быть ЧУВСТВИТЕЛЬНЫМ КЕЙСОМ.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 12 апреля 2011

Я думаю, что это должно работать (не проверял):

/Doc//Test[contains(Name,'Pre') and contains(Name,'History') and contains(Name,1)]/Type

Однако это с учетом регистра. Если вы хотите, чтобы регистр не учитывался, вы можете посмотреть этот вопрос или этот вопрос : вы должны использовать translate для преобразования Name в строчные (или в верхнем регистре), а затем совпадают.

0 голосов
/ 03 января 2013

работает, когда:

/Doc//Test[contains(Name,'Pre')][contains(Name,'History')][contains(Name,1)]/Type;
...