XML-XSL Validate Ask - PullRequest
       2

XML-XSL Validate Ask

0 голосов
/ 27 мая 2018

начиная с xml 10 ~ 15 дней

пока xml-xslt?XML-XSL?изучая, я копировал книгу, но не смог проверить vaildate.

В XML-файле ошибка Vaildate в строке 3, столбец 11.

Это 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, ошибка Vaildate в строке 2, столбец 84.

Это 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>

Я не знаю, почемуне подтверждено .. TT

для справки, я использую XML copy Editor

1 Ответ

0 голосов
/ 27 мая 2018

Ошибка в вашем файле 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>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...