【发布时间】:2011-12-07 21:47:58
【问题描述】:
我有一个类似这样的 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>
我需要展示这样的东西:
我尝试了以下 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>
我哪里错了?请建议...
【问题讨论】:
-
请更准确地说明您收到的错误。 “一些错误”几乎没有用。此外,您显示的 XML 在语法上无效。提供您的真实 XML 或更多地关注您的模型。
-
嗨 Tomalak.. 感谢您的回复.. 它:XML 解析错误:标签不匹配。预期:
-
正如我所说,您的“XML”在语法上是无效的。如果这真的是你想要解决的问题,那就打给制造这个烂摊子的人。 ;)
-
哈哈 :) 实际上这是从响应中生成的。您能否建议我在这种情况下如何构建 XML?因为我需要显示前 3 个产品/文章以及“查看更多”,这只是一个链接。可以添加到 Navigator 标签的属性中吗?但我不确定我们是否可以添加像字符串这样的 href 链接作为属性。
-
它是从什么响应中创建的?显然该服务器没有 XML 的概念,所以这应该在第一个实例中修复。只有在服务器提供 实际 XML(而不是远程看起来像 XML 的东西)之后,您的其他问题才能得到解决。