Выбор XPath из пути в содержимом XML - PullRequest
1 голос
/ 11 мая 2010

У меня есть следующий XML:

<root>
  <name>The name</name>
  <long>
    <path>
      <value>Some Value</value>
    </path>
  </long>
  <field>/root/name</field>
  <field>/root/long/path/value</field>
</root>

и я хочу выбрать эти пути в тегах полей, однако, когда я пытаюсь сделать следующее:

<xsl:value-of select="/root/field[1]" />

все, что я получаю, это текстовое значение поля. Есть ли способ выбрать правильный узел из этих значений?

Ответы [ 3 ]

1 голос
/ 11 мая 2010

Вам нужна некоторая форма динамической оценки. Я считаю, что есть нестандартная функция eval() (или evaluate() в некоторых реализациях), которая позволяет использовать динамический xpath.

Какой процессор XPath вы используете, а XPath 1.0 или 2.0?

0 голосов
/ 11 мая 2010

Если вы хотите, чтобы узел содержал «/ root / node», тогда ваш xpath будет:

//*[.='/root/name']

это называется предикатом , где * соответствует любому узлу, а . - текущий узел.

0 голосов
/ 11 мая 2010

Такой вид динамической оценки не поддерживается даже в XSLT 2.0 .

Может быть, используемый вами процессор XSLT поддерживает функцию расширения dyn:evaluate() EXSLT?

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