0

私はこのスタイルシートを持っています

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                xmlns:tes="http://testwork/">
    <xsl:template match="/">
        <xsl:apply-templates select="soapenv:Envelope/soapenv:Body/*"/>
    </xsl:template>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

そしてこのxmlファイル

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tes="http://testwork/">
   <soapenv:Header/>
   <soapenv:Body>
      <tes:sayHelloWorldFrom>
         <!--Optional:-->
         <arg0>?</arg0>
      </tes:sayHelloWorldFrom>
   </soapenv:Body>
</soapenv:Envelope>

この xsl を使用してこの xml から本文を取得したいのですが、変換に Saxon を使用しています。これが私のコードです。

public void get(String xml, String xsl) throws ServiceException {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource(xsl));           
transformer.transform(new StreamSource(xml), new StreamResult(System.out));

しかし、メソッドの実行中にエラーが発生しました

javax.xml.transform.TransformerConfigurationException: スタイルシートのコンパイルに失敗しました。1 個のエラーが検出されました。net.sf.saxon.PreparedStylesheet.prepare(PreparedStylesheet.java:220) で net.sf.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:132) で net.sf.saxon.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:87) で) service.ResponseService.getRequestSoapBody(ResponseService.java:76) で

では、何が問題なのですか?

4

1 に答える 1