2012-03-14 3 views
1

Например:XPath: как извлечь первую строку значения многострочного атрибута?

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

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

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

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

ответ

1

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

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> 

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

firstLine 
Смежные вопросы