Tôi nhận NullPointerException trong đoạn mã sau:Bắt NullPointerException trong khi chuyển yếu tố Dom chuỗi
String str = SOME_HTML_STRING;
Node node = convertStrIntoNodeUsingJTidy();
domToString(node);
//converts node to string
public static String domToString(org.w3c.dom.Node node)throws Exception {
try {
StringWriter sw = new StringWriter();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
// NullPointerException at this line, although node is not null
transformer.transform(new DOMSource(node), new StreamResult(sw));
return sw.toString();
} catch (Exception ex) {
throw new Exception("Error converting to String", ex);
}
}
Các stacktrace là:
Caused by: javax.xml.transform.TransformerException: java.lang.NullPointerException
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at com.example.Util.domToString(Util.java:3179)
... 128 more
Caused by: java.lang.NullPointerException
at com.sun.org.apache.xml.internal.serializer.ToXMLStream.processingInstruction(Unknown Source)
at com.sun.org.apache.xml.internal.serializer.ToUnknownStream.processingInstruction(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)
... 131 more
Tôi đã kiểm tra đường dẫn sau: http://geekymeeky.blogspot.in/2008/10/javaxxmltransform-transformerexception.html
Bài viết trên cho biết, nếu một nút văn bản là null thì ngoại lệ này xảy ra.
Tôi muốn biết, giá trị của biến số str làm cho giá trị nút văn bản thành null và dẫn đến ngoại lệ này.
Và 'SOME_HTML_STRING' là gì? – fge
Bạn có chắc 'nút' không phải là null không? Hãy thử thêm 'nút assert! = Null' trước khi chuyển đổi. – user1516873
@fge Đó là điều tôi muốn biết. Trên thực tế, một trong những khách hàng của chúng tôi đã báo cáo lỗi này. Tôi đã thử mọi kịch bản có thể có của 'SOME_HTML_STRING', nhưng tôi không thể tạo lại lỗi. –