XML-XSL验证问

时间:2018-05-27 18:19:12

标签: xml xslt

启动xml 10~15天

而xml-xslt? XML,XSL?我正在学习,我正在复制一本书,但无法进行检查。

在XML文件中,第3行第11列的Vaildate错误。

这是XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="booklist.xsl"?>
<Booklist>
  <Book isbn="20030101">
    <Bookname>XML </Bookname>
    <Author>Pack Mi Young</Author>
    <Publisher>Hanbit</Publisher>
    <Publish_Date>
      <Y>2015</Y>
      <M>10</M>
      <D>15</D>
    </Publish_Date>
    <Page>560</Page>
    <Price>18000</Price>
  </Book>

  <Book isbn="20030102">
    <Bookname>JAVA </Bookname>
    <Author>Cha Sang Min</Author>
    <Publisher>Dankook</Publisher>
    <Publish_Date>
      <Y>2015</Y>
      <M>11</M>
      <D>20</D>
    </Publish_Date>
    <Page>750</Page>
    <Price>28000</Price>
  </Book>
  </Booklist>

在XSL文件中,第2行第84列的Vaildate错误。

这是XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/Booklist/Book">
    <h3>Book match template</h3>
    <xsl:apply-templates select="Author:"/>
  </xsl:template>

 <xsl:template match="Author">
    <h3>Author name :</h3>
    <font color='blue'><xsl:value-of select="."/></font>
  </xsl:template>
</xsl:stylesheet>

我不知道为什么没有经过验证.. T.T

供参考,我使用XML copy Editor

1 个答案:

答案 0 :(得分:2)

XSLT文件中的错误在

<xsl:apply-templates select="Author:"/>

:使您的XPath表达式无效。所以使用

<xsl:apply-templates select="Author"/>

代替。

此外,如果您需要有效的HTML文件,则必须对XSLT文件进行两处更改:

  1. 添加

    <xsl:output method="html" indent="yes" />
    

    作为xsl:stylesheet的顶级元素。而且......

  2. 添加与根元素/匹配的常规HTML模板:

    <xsl:template match="/">
      <html>
        <body>
          <xsl:apply-templates select="node()|@*" />
        </body>
      </html>
    </xsl:template>