以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  我用Transformer去解析xslt文件,提示里面用到的某个函数不能识别  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=51613)


--  作者:44023154
--  发布时间:8/21/2007 11:25:00 AM

--  我用Transformer去解析xslt文件,提示里面用到的某个函数不能识别
我用Transformer去解析xslt文件,提示里面用到的某个函数不能识别,用到的是empty函数,这个函数我去查过在xpath的函数包里面是有的啊!
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public void xmlToFO(File xmlFile, File xsltFile, File foFile){
  try {
  TransformerFactory factory = TransformerFactory.newInstance();
  Transformer transformer = factory.newTransformer(new StreamSource(xsltFile));
  Source src = new StreamSource(xmlFile);
  Result  result = new StreamResult(foFile);
  transformer.transform(src, result);
    
  } catch (Exception e){
   System.out.println(e);
   }
 }

1:上面这段代码就是我把一个XML文件+一个XSLT文件生成FO文件的源代码,错误出现在factory.newTransformer(new StreamSource(xsltFile));
这步.
2:这个XSLT文件的格式肯定是对的,因为是XMLSPY这个软件里面生成的,而且在里面是可以预览HTML.PDF等生成结果的,一切都很正常.
3:我现在就是把里面生成的XSLT文件用我上面的这段代码去解析,就出现EMPTY这个函数不能识别的问题了!这段代码也没问题的!网上可以搜索到很多.
4:我SUN网站下了新的JAXP包,用里面的Transformer这套API,抱同样的错误.
5:如果我不用到EMPTY函数,只是用简单的XSLT文件,上面这段代码跑起来没问题的,我试过了!
现在我搞不清楚到底是什么原因了,大家知道的帮忙解释解释啊!

这段是我的XSLT文件里面用到的代码!调用到了一个EMPTY函数.是由XMLSPY软件生成的!

<xsl:template match="altova:inline-container-substitute" mode="second-step">
  <xsl:choose>
   <xsl:when test="empty(for $i in child::node() return index-of(('fo:block','fo:block-container','fo:list-block'),name($i)))">
    <fo:inline>
     <xsl:copy-of select="@*"/>
     <xsl:apply-templates mode="second-step"/>
    </fo:inline>
   </xsl:when>
   <xsl:otherwise>
    <fo:block>
     <xsl:copy-of select="@*"/>
     <xsl:apply-templates mode="second-step"/>
    </fo:block>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>


--  作者:hexun831012
--  发布时间:8/21/2007 2:20:00 PM

--  
我只听说过Transformiix解析器
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
3,386.719ms