like-подобный поиск при помощи XPath - CodeHelper

like-подобный поиск при помощи XPath

1

Скажем, есть xml-документ вида

<catalog>
  <cd country="USA">
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <price>10.90</price>
  </cd>
  <cd country="UK">
    <title>Hide your heart</title>
    <artist>Bonnie Tyler</artist>
    <price>10.0</price>
  </cd>
  <cd country="USA">
    <title>Greatest Hits</title>
    <artist>Dolly Parton</artist>
    <price>9.90</price>
  </cd>
</catalog>

нужно выбрать из него все узлы, имена которых начинаются, к примеру, на "tit". Как это сделать? Подозреваю, что это связано с функцией starts-with(), но никак не найду примера.

Сложность в том, что я заранее не знаю структуру документа. Просто мне нужно найти все узлы с именем "А", которые содержатся в узлах, имя которых начинается на "Бэ".

Лучший ответ:

1

Запрос может выглядеть так:

@"//*[starts-with(local-name(), 'tit')]"

Что означает "выбрать все узлы, имя которых начинается на 'tit'". Можно даже так делать:

@"//*[starts-with(local-name(), 'c')]/artist"

В результате получим все узлы с именем "artist", имя родителя которых начинается на "c".

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.