5

次のコードでは:

private Document transformDoc(Source source) throws TransformerException, IOException {
    TransformerFactory factory = TransformerFactory.newInstance();

    Transformer transformer =
            factory.newTransformer(new StreamSource(xsltResource.getInputStream()));
    JDOMResult result = new JDOMResult();
    transformer.transform(source, result);
    return result.getDocument();
}

私はこの例外を受け取ります:

java.io.IOException: Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

私が xsl 経由で翻訳している XHTML は次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  <title>Terms and Conditions</title>
</head>
<body>
  <div>Test Content</div>
</body>
</html>

xalan トランスフォーマーが家に電話をかけないようにするにはどうすればよいですか?

4

2 に答える 2

2

パーサー (パーサー固有) での DTD 解決を無効にするか、空のエンティティ リゾルバーを設定します。

http://www.jdom.org/docs/faq.html#a0350からコピー:

public class NoOpEntityResolver implements EntityResolver {
  public InputSource resolveEntity(String publicId, String systemId) {
    return new InputSource(new StringBufferInputStream(""));
  }
}

// Then in the builder...

builder.setEntityResolver(new NoOpEntityResolver());
于 2010-03-23T18:38:51.473 に答える
1

Xalan-J メーリング リストからのこの投稿は、 "正しい方法" は、検証を無効にするように基になるSource/自分自身を構成することであることを示唆しています。Reader

于 2010-03-23T18:35:54.020 に答える