Ошибка плохо отформатированного XSLT?

Я хочу преобразовать HTML в XML, выполняя преобразование XSLT, но я вижу эту ошибку:

<message>
Impossible to read XSLT from 'file:/home/antonmm/src/cardMarket/cocoon-cardmarket/src/main/resources/COB-INF/xsl/productCard.xsl', see nested exception
</message>
<stacktrace>
org.apache.cocoon.pipeline.SetupException: Impossible to read XSLT from 'file:/home/antonmm/src/cardMarket/cocoon-cardmarket/src/main/resources/COB-INF/xsl/productCard.xsl', see nested exception at org.apache.cocoon.sax.component.XSLTTransformer.loadXSLT(XSLTTransformer.java:168) at org.apache.cocoon.sax.component.XSLTTransformer.setConfiguration(XSLTTransformer.java:205) at ......

блок в коконе:

  <map:pipeline>
    <map:match pattern="product">
<!--       <map:generate src="sample/p.xml"/> -->
      <map:generate src="https://productweb.com"/>
      <map:transform src="xsl/product.xsl" />
      <map:serialize type="xml"/>
    </map:match>
  </map:pipeline>

product.xsl:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:x="http://www.w3.org/1999/xhtml" />
  <xsl:template match="/">
    <img>
      <xsl:apply-templates />
    </img>
  </xsl:template>
  <xsl:template match="x:span[@class='prodImage']/x:img">
    <xxx>
      <value-of select="@src"/>
    </xxx>

  <xsl:template match="text()"/>

</xsl:stylesheet>

1 ответ

Решение

Обычно такого рода ошибки не появляются для плохо отформатированного XSLT-файла или для синтаксических ошибок.

Это из-за доступности файла XSLT. Убедитесь, что вы правильно указали имя файла. Попробуйте получить доступ к пути к файлу, который вы указали, из проводника или браузера (это проверяет путь к файлу, а также имя файла) . Также расширение файла должно совпадать с тем, которое вы указали. Если вы укажете как *.xsl и фактический файл *.xslt тогда это не доступно.

Другие вопросы по тегам