首页 > 解决方案 > 如何将 XSL 样式表连接到 XML 文件以生成 HTML?

问题描述

一个多星期以来,我一直试图弄清楚如何做到这一点,但似乎没有任何效果。我已经确定我也引用了 XML 中的 XSL 文件。我不太确定我做错了什么,但我非常感谢了解这种语法的人的帮助。我是 XML 的新手,所以大家放轻松!

到目前为止,这是我的代码:

XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="Question2.xsl" type="text/xsl" ?>
<!DOCTYPE patronRecord [
  <!ELEMENT patronRecord (Item*)>
  <!ATTLIST patronRecord firstName CDATA #REQUIRED>
  <!ATTLIST patronRecord lastName CDATA #REQUIRED>
  <!ELEMENT Item (title,Authors,callNumber,due,overdue)>
  <!ELEMENT title (#PCDATA)>
  <!ELEMENT Authors (#PCDATA)>
  <!ELEMENT callNumber (#PCDATA)>
  <!ELEMENT due (#PCDATA)>
  <!ELEMENT overdue (#PCDATA)>
]>
<patronRecord firstName="John" lastName="Smith">
   <Item>
      <title>Wireless network security</title>
      <Authors>T.Wrightson</Authors>
      <callNumber>212.12/56</callNumber>
      <due>26-12-2016</due>
      <overdue>NO</overdue>
   </Item>
   <Item>
      <title>T. Tao</title>
      <Authors>Analysis</Authors>
      <callNumber>515/305</callNumber>
      <due>23-12-2016</due>
      <overdue>NO</overdue>
   </Item>
   <Item>
      <title>The art of computer programming</title>
      <Authors>D.E. Knuth</Authors>
      <callNumber>005.1/300</callNumber>
      <due>25-11-2016</due>
      <overdue>YES</overdue>
   </Item>
   <Item>
      <title>Python for dummies</title>
      <Authors>S. Maruch and A. Ranum</Authors>
      <callNumber>145.3/57</callNumber>
      <due>01-10-2016</due>
      <overdue>YES</overdue>
   </Item>
</patronRecord>

XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:template match="/patronRecord">
      <html>
         <body>
            <xsl:for-each select="Item">
               <xsl:value-of select="title" />
               <br />
               <xsl:value-of select="Authors" />
               <br />
               <xsl:value-of select="callNumber" />
               <br />
               <xsl:value-of select="due" />
               <br />
               <xsl:value-of select="overdue" />
               <br />
            </xsl:for-each>
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>

标签: htmlxmlxslt

解决方案


推荐阅读