簡體   English   中英

基本XML / XSLT:將模板應用於多個元素

[英]Basic XML/XSLT : applying template to several elements

我正在嘗試自學XSLT。 這可能是一個非常基本的問題,但是在這里進行了大量搜索之后,以及在網絡上的其他站點上,我仍然無法解決此問題。

我一直在嘗試重新創建此問題中描述的方案: 如何處理XSLT中的嵌入式XML標簽?

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test.html.xsl"?>
<favoriteMovies>
  <favoriteMovie>the <i>Star Wars</i> saga</favoriteMovie>
</favoriteMovies>

這是XSL:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" omit-xml-declaration="yes" indent="yes"/>

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

 <xsl:template match="/*">
  <ul>
   <xsl:apply-templates/>
  </ul>
 </xsl:template>

 <xsl:template match="favoriteMovie">
  <li><xsl:copy-of select="node()"/></li>
 </xsl:template>
</xsl:stylesheet>

對於此特定示例,此方法工作正常。 但是當我添加另一部“喜歡的電影”時...

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test.html.xsl"?>
<favoriteMovies>
  <favoriteMovie>the <i>Star Wars</i> saga</favoriteMovie>
</favoriteMovies>
<favoriteMovies>
  <favoriteMovie>the <i>Godfather</i> trilogy</favoriteMovie>
</favoriteMovies>

我得到的只是一個錯誤...

XML解析錯誤:文檔元素后出現垃圾信息位置:localhost:8888 / test.xml行號6,列1:^

為了使這項工作有效,我需要更改什么?

任何XML文檔都需要具有包含所有其他元素的單個頂級根元素,因此您需要例如

<root>
<favoriteMovies>
  <favoriteMovie>the <i>Star Wars</i> saga</favoriteMovie>
</favoriteMovies>
<favoriteMovies>
  <favoriteMovie>the <i>Godfather</i> trilogy</favoriteMovie>
</favoriteMovies>
</root>

要么

<favoriteMovies>
 <favoriteMovie>the <i>Star Wars</i> saga</favoriteMovie>
 <favoriteMovie>the <i>Godfather</i> trilogy</favoriteMovie>
<favoriteMovies>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM