Генерация XSLT для данного XML.Ошибка: несоответствие - PullRequest
0 голосов
/ 14 октября 2011

У меня есть что-то вроде XML

<NavigatorItems>
  <Navigator Name="Product">
    <ModifierName>Product1</ModifierName>
    <ModifierLink>www.Product1.com</ModifierLink>
    <ModifierName>Product2</ModifierName>
    <ModifierLink>www.Product2.com</ModifierLink>
    <ShowAll>www.ProductMain.com</ShowAll>
  </Navigator>

  <Navigator Name="Article">
    <ModifierName>Article1</ModifierName>
    <ModifierLink>www.Article1.com</ModifierLink>
    <ModifierName>Article2</ModifierName>
    <ModifierLink>www.Article2.com</ModifierLink>
    <ShowAll>www.ArticleMain.com</ShowAll>
  </Navigator>
</NavigatorItems>

Мне нужно показать что-то вроде этого:

enter image description here

Я попробовал следующий XSLT, но он выдаетнекоторая ошибка (несоответствие): Ошибка синтаксического анализа XML: несоответствующий тег.Ожидаемый: </ModifierName>

Мой код:

 <xsl:for-each select="NavigatorItems/Navigator">
  <xsl:variable name="link" select="ModifierLink"/>
  <tr>
    <td><a href ="{$link}"><xsl:value-of select="ModifierName"/></td>
  </tr>
  <xsl:test select="ShowAll"> 
  <xsl:variable name="linkShowAll" select="ShowAll"/>
     <tr> <td> <a href="{$linkShowAll}"> View More Results <td> </tr>
  </xsl:test>
  </xsl:for-each>

Где я иду не так?Пожалуйста, Предложите ...

1 Ответ

1 голос
/ 14 октября 2011

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

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="html" encoding="UTF-8" indent="yes" />
    <xsl:template match="/">
        <xsl:for-each select="NavigatorItems/Navigator">   
            <xsl:variable name="link" select="ModifierLink"/>   
            <tr>   
                <td>
                    <a><xsl:attribute name="href"><xsl:value-of select="ModifierLink"/></xsl:attribute><xsl:value-of select="ModifierName" /></a>                                       
                </td>   
            </tr>   
            <xsl:if test select="ShowAll != ''">    
                <tr> 
                    <td>
                        <a><xsl:attribute name="href"><xsl:value-of select="ShowAll"/>View More Results</a>                                       
                    </td>   
                </tr>   
            </xsl:test>   
        </xsl:for-each> 
    </xsl:template>
</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...