XPath: как извлечь первую строку многострочного значения атрибута? - PullRequest
1 голос
/ 15 марта 2012

Например:

<doc>
    <elem attr="firstLine &x0a; secondLine"/>
    <elem attr="1stLine"/>
</doc>

Нужно получить первую строку, когда их много

Из приведенного выше примера мы хотим получить {'firstLine', '1stLine'}

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Использование :

substring-before(/*/elem[1]/@attr, '&#x0A;')

Вот проверка на основе XSLT :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/">
     <xsl:copy-of select="substring-before(/*/elem[1]/@attr, '&#x0A;')"/>
 </xsl:template>
</xsl:stylesheet>

, когда это преобразованиеприменяется к предоставленному XML-документу (исправлено, чтобы быть правильно сформированным !!!):

<doc>
    <elem attr="firstLine &#x0a; secondLine"/>
    <elem attr="1stLine"/>
</doc>

оценивает выражение XPath и выводит результат этой оценки :

firstLine 
0 голосов
/ 15 марта 2012

Если вы используете XPath 2.0, вы можете использовать tokenize()

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