Все узлы, имеющие атрибут - PullRequest
       0

Все узлы, имеющие атрибут

0 голосов
/ 30 ноября 2010

Есть ли какой-нибудь синтаксис xpath, который я мог бы использовать, чтобы получить все узлы (включая дочерние узлы), у которых есть identifierref, присутствующий в xml ниже? Я пробовал что-то вроде XmlNodeList nodeList = xmlDoc.SelectNodes("//@identifierref");, но это не возвращает дочерний узел заголовка под узлами элемента. В идеале я хочу получить список узлов, у которого есть доступ к узлам элемента, у которых есть идентификатор, и узлам заголовка под ними. Ниже приведен XML, с которым я работаю. Заранее спасибо.

<organization xmlns:adlcp="test1" xmlns="test2">
      <title>1.2 Tester</title>
      <item identifier="C2_LESSON1">
        <title>TestName1</title>
        <item identifier="I_SCO1" identifierref="SCO01">
          <title>Tester SCO 1</title>
        </item>
      </item>
      <item identifier="C2_LESSON2">
        <title>TestName2</title>
        <item identifier="I_SCO2" identifierref="SCO01">
          <title>Tester SCO 2</title>
        </item>
      </item>
      <item identifier="C2_LESSON3">
        <title>TestName3</title>
        <item identifier="I_SCO3" identifierref="SCO01">
          <title>Tester SCO 3</title>
        </item>
      </item>
    </organization>

1 Ответ

1 голос
/ 30 ноября 2010

Я хочу получить список узлов, у которого есть доступ к узлам элементов, у которых есть идентификатор, и узлам заголовка под ними

//item[@identifier]

Выше перечислены все элементы itemв документе, имеющем атрибут identifier.

Если вы хотите также выбрать дочерний элемент title.

//item[@identifier]|//item[@identifier]/title

Но порядок результатов набора узлов зависит от языка хоста (большинство работает с порядком документов).Также нет функции «группировки»: вы не можете выполнять итерации по каждому из двух, потому что, возможно, отсутствует какой-то title.

Итак, сначала используйте первое выражение XPath, а затем итерируйте по этим item, получаяtitle с любым методом DOM или относительным выражением XPath, например:

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