2016-11-21 6 views
0

У меня возникли проблемы с вытаскиванием атрибута YEAR из моего xml-файла и конкатенацией его с помощью символов.XSLT: проблема с конкатенацией слов с атрибутом

Я пытаюсь получить XML выглядеть следующим образом:

<h1>CIA World 2008 Factbook - Countries</h1> 

"2008" является, кроме атрибута YEAR. Вот фрагмент XML-документа, который я использую:

<WFB YEAR="2008"> 

WFB является корневым элементом в документе.

До сих пор у меня есть это ..

<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="element[@YEAR]"> 
    <element> 
     <h1><xsl:value-of select= 
     "concat(CIA World ', @YEAR, ' Factbook - Countries)"/></h1> 
    </element> 
</xsl:template> 
<xsl:template match="text()"/> 
</xsl:stylesheet> 

Я чувствую, что я более усложняя его, хотя ...

+0

'@ WFB' не атрибут – bhantol

+0

Спасибо, bhantol. Я редактировал свой оригинальный пост. –

+0

Пожалуйста, отправьте сообщение [mcve] - esp. WRT вход. –

ответ

3

Учитывая следующие входные:

XML

<WFB YEAR="2008"/> 

следующие таблицы стилей:

XSLT 1,0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="/WFB"> 
    <html> 
     <h1> 
      <xsl:value-of select="concat('CIA World ', @YEAR, ' Factbook - Countries')"/> 
     </h1> 
    </html> 
</xsl:template> 

</xsl:stylesheet> 

вернется:

<html> 
    <h1>CIA World 2008 Factbook - Countries</h1> 
</html> 
+0

Спасибо, Michael.hor257k! Я просто попробовал ваш пример кода, но по какой-то причине, когда я преобразовываю свой XML, мой html-файл появляется пустым. Любой совет? –

+1

Этот код сгенерирует показанный HTML с учетом показанного XML. Если у вас возникли проблемы с этим, вам нужно будет сделать гораздо лучшую работу ** ретрансляции точно, как вы используете код **. Если вы пытаетесь запустить XSLT в браузере, см. [** XSLT, не работающий в веб-браузере **] (http://stackoverflow.com/questions/29941662/xslt-not-working-in-web-browser) , – kjhughes