InputStream in = new StringBufferInputStream( inString );
javax.xml.parsers.DocumentBuilder db = _documentBuilderFactory.newDocumentBuilder();
org.w3c.dom.Document document = db.parse( in );

解决方案 »

  1.   

    楼上的回答反了吧。我自己的static方法,如何得到Document就看楼主的了。我使用的是apache的xercesimport org.apache.xml.serialize.*;
    import org.w3c.dom.*;
    import org.apache.xerces.dom.*;
    import java.io.*;
    import java.util.*;//放在什么地方自己看着办
    public static String documentToString(org.w3c.dom.Document xmldoc){
    try{
    java.io.StringWriter o = new StringWriter();
    OutputFormat of = new OutputFormat();
    XMLSerializer serializer = new XMLSerializer(o,of);
    serializer.asDOMSerializer();
    serializer.serialize( xmldoc.getDocumentElement() ); return o.toString();
    }
    catch(IOException ioe){
    ioe.printStackTrace();
    return null;
    }
    }
      

  2.   

    wangwenyou(王文友) :  public void doxml(){                try{
                            //获取一个XML解析器
                            DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
                            DocumentBuilder builder=factory.newDocumentBuilder();
                            //解析XML文件
                            //Document document=builder.parse(new File("books.xml"));
                            String tmp =" <?xml version=\"1.0\" encoding=\"UTF-8\"?><catalog><book id=\"bk101\"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><publish_date><year>2000</year><month>10</month><day>1</day></publish_date><description>An in-depth look at creating applications with XML.</description></book></catalog>";
                            InputStream in = new StringBufferInputStream(tmp);
                            System.out.println("sdfsdf");
                            Document document=builder.parse(in);
                            //去掉XML文档中空白部分
                            document.normalize();
                            System.out.println("sdfsdfAA");
                            //获取根节点并打印根节点的名称
                            Element root=document.getDocumentElement();
                            System.out.println("根原始的名称:"+root.getTagName());
                            //获取所有的"book"标记,它是一个NodeList对象
                            NodeList books=root.getElementsByTagName("book");
                            //遍历NodeList
                            System.out.println("书本列表");
                            for(int i=0;i<books.getLength();i++){
                                    //获取books中的每一个元素
                                    Element book=(Element)books.item(i);
                                    //获取每个"book"标记的"id"属性
                                    String book_id=book.getAttribute("id");//或book.getAttributeNode("id").getValue();
                                    System.out.println("序号:"+book_id);
                                    //获取"book"标记下的每个元素
                                    System.out.print("作者:");
                                    System.out.println(book.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
                                    System.out.print("标题:");
                                    System.out.println(book.getElementsByTagName("title").item(0).getFirstChild().getNodeValue());
                                    //获取"publish_date"元素
                                    Element publishDate=(Element)book.getElementsByTagName("publish_date").item(0);
                                    //获取"publish_date"元素下的每个子元素
                                    String year=publishDate.getElementsByTagName("year").item(0).getFirstChild().getNodeValue();
                                    String month=publishDate.getElementsByTagName("month").item(0).getFirstChild().getNodeValue();
                                    String day=publishDate.getElementsByTagName("day").item(0).getFirstChild().getNodeValue();
                                    System.out.println("出版日期:"+year+"年"+month+"月"+day+"日");
                                    System.out.print("描述:");
                                    System.out.println(book.getElementsByTagName("description").item(0).getFirstChild().getNodeValue());
                                    System.out.println("--------------------");
                            }
                    }
                    catch(Exception e2){
                       e2.printStackTrace();
                    }
    }出错???
      

  3.   

    谢谢 wangwenyou(王文友) 很感谢。。
      

  4.   

    异常信息是什么?
    有可能两个原因
    1、=" <?改为="<? 。PI前别有空格;
    2、尽量使用'代替\"。
      

  5.   

    java.io.PrintWriter out = response.getWriter();
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer();
    transformer.setOutputProperty(OutputKeys.ENCODING,"gb2312");
    StreamResult result = new StreamResult(out);
    transformer.transform(new DOMSource(document),result);
    String tmp = out.toString();这就是string了。