2015-02-05 4 views
-3

XSLT не находит корневой элемент, если он имеет дефис в нем:XSLT - Дефис в корневой элемент XML

<serial-issue> 
    <title>hello</title> 
    <issue-info> 
     <pii>3426-4114(11)X6013-4</pii> 
     <jid>Journal</jid> 
     <issn>1526-4114</issn> 
    </issue-info> 
</serial-issue> 

Вот является XSLT сценарий:

<xsl:template match="/"> 
    <html> 
     <body> 
      <xsl:apply-templates select="serial-issue"/> 
     </body> 
    </html> 
</xsl:template> 

<xsl:template match="issue-info"> 
    <test> 
    <xsl:value-of select="jid"/> 
</test> 
</xsl:template> 

Данный скрипт не работает , Он работает, если «serial-issue» изменен на «serialissue». Не могли бы вы помочь?

+0

Либо образцы, предоставленные неверны, или у вас есть очень простой XSLT-анализатор. Это не сработает ... –

+1

У вас есть необъявленное пространство имен 'ce', а ваш '' узел не закрыт .... –

+0

Однако имя вашего корневого узла не должно быть проблемой. Как только проблемы, о которых я упоминал выше, исправлены, я могу сделать преобразование без каких-либо проблем (я использую Visual Studio 2010) –

ответ

-1

В этом примере шаблон вызывается с совпадением «serial-issue», но такого шаблона нет.

Добавление

<xsl:template match="serial-issue"> 
     <xsl:apply-templates /> 
</xsl:template> 

на ваш XSL сценарий будет решить эту проблему. Кроме того, это не тег HTML, поэтому он не будет работать на выходе.

Минимальная версия таблицы стилей может выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="html"/> 

    <xsl:template match="/"> 
    <html><body> 
     <xsl:apply-templates /> 
    </body></html> 
    </xsl:template> 

<xsl:template match="serial-issue"> 
     <xsl:apply-templates /> 
</xsl:template> 

<xsl:template match="issue-info"> 
     <xsl:value-of select="jid"/> 
</xsl:template> 

</xsl:stylesheet> 
+0

"* Добавление ... к вашему скрипту XSL решит проблему. *« Нет, это не так. –

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