как получить текст с xpath из плохого XML? - PullRequest
1 голос
/ 29 мая 2011

У меня есть файл "плохая структура XML":

<cars>
    <car>Toyota
        <country>Japan</coutry>
        ....
    </car>
</cars>

Как правильно получить правильное слово ( Toyota ), используя Xpath? Я попробовал:

<xsl:value-of select = "cars/car/text()"/>.

Это работает, но я думаю, что есть более подходящие методы. Спасибо.

1 Ответ

3 голосов
/ 29 мая 2011

Используйте :

/cars/car/text()[1]

или, если вы хотите удалить большую часть пробела в выбранном выше текстовом узле, используйте:

normalize-space(/cars/car/text()[1])

Обратите внимание, что, хотя в XSLT 1.0 <xsl:value-of> выводит строковое значение только первого узла набора узлов, выбранного выражением в атрибуте select, <xsl:copy-of> выведет все узлы внабор узлов.В XSLT 2.0 даже <xsl:value-of> выводит все узлы в наборе узлов.

Поэтому, в целях переносимости, возможности модернизации и просто для избежания ошибок, лучше указать, какой именно узел из набора узлов долженвыводиться - даже при использовании <xsl:value-of>

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