问题是这样的。我在做文本提取时用的org.w3c.dom.node,目标是提取到正文node,并返回node节点的html内容,就像org.htmlparser.Node的tohtml()方法一样返回html,但是org.w3c.dom.node没有这样的方法。
1.能不能在不换成org.htmlparser.Node的情况下实现tohtml(因为org.w3c.dom.node在项目用了很多,且某些方法在org.htmlparser.Node也没有)。
2.org.htmlparser.包下的node,document能否实现org.w3c.dom下的node,document,总之能够替代。
下面请高手们踊跃发言吧~~

解决方案 »

  1.   

    还是写个工具类来实现吧。
    写个方法,传入org.w3c.dom.Node,方法里面利用一下org.htmlparser.Node,传出字符串。
    htmlparser……是什么?那个用来解析HTML文件的工具?对于大量由界面设计人员为IE开发的页面,恐怕这东西无能为力。
    如果你解析的是xml文件,为何要得到html内容?
      

  2.   

    htmlparser 也是解析网页的,但是node和org.w3c.dom.Node不一样,没有办法用htmlparser.Node的tohtml方法
      

  3.   

    试试下面这段代码(命令行两个参数,第一个是xml文件名,第二个是要输出的节点),看看合不合你的要求:
    package org.necros.test.xml;import java.io.ByteArrayOutputStream;
    import java.io.File;import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;
    import org.w3c.dom.Node;public class NodeToHtml {
    public static void main(String[] args) throws Throwable {
    Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(args[0]));
    Node n = doc.getDocumentElement().getElementsByTagName(args[1]).item(0);
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    StreamResult ot = new StreamResult(os);
    TransformerFactory.newInstance().newTransformer().transform(new DOMSource(n), ot);
    String result = os.toString(doc.getInputEncoding());
    System.out.println("The result is:\n" + result);
    }
    }
      

  4.   

    不错  问题解决了   
     import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;这些包可以用来将node包含的html信息恢复