同样的org.w3c.dom.Document变量表现不同

时间:2013-07-14 16:41:36

标签: java xml xslt

w3c.dom.Document可以用作Node,但是当我尝试这个

public static Object tranform(Source source) {
        Object result = null;
        try {
            TransformerFactory tf = TransformerFactory.newInstance();
            Transformer newTransformer = tf.newTransformer();
            newTransformer.transform(source, (Result) result);
        } catch (TransformerException ex) {
            Logger.getLogger(XMLUtils.class.getName()).log(Level.SEVERE, null, ex);
        } 
        return result;
    }

在另一个文件

     Document doc = (Document) XMLUtils.tranform(source);
     // pass this doc to a function that that a Node typed parameter
     if (node == null) {
         return;
     } else {
         ...
     }

node将始终为null,并且它也没有子节点。 我试图将每种类型的源转换为每种类型的结果,编码器会将返回的结果转换为他们需要的正确类型。你能不能请 1)解释我的错误? 2)给我一个如何实现这个目的的提示?

谢谢你,以及最好的问候

1 个答案:

答案 0 :(得分:1)

我认为您需要创建一个实现Result的类,例如DOMResult

Result result = new DOMResult();

newTransformer.transform(source, result);

return result.getNode();