有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (6) 个答案

  1. # 1 楼答案

    javadocs表明parse方法重载

    使用字符串XML创建一个StringStream或InputSource,您应该被设置

  2. # 2 楼答案

    将字符串转换为InputStream并将其传递给DocumentBuilder

    final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8));
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    builder.parse(stream);
    

    编辑
    关于本丁关于编码的评论,请参见施泰默对这个问题的回答

  3. # 3 楼答案

    一种方法是使用接受InputSource而不是文件的parse版本

    SAX输入源可以从读卡器对象构造。一个读卡器对象是StringReader

    比如

    parse(new InputSource(new StringReader(myString))) may work. 
    
  4. # 4 楼答案

    我在用这个方法

    public Document parseXmlFromString(String xmlString){
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        InputStream inputStream = new    ByteArrayInputStream(xmlString.getBytes());
        org.w3c.dom.Document document = builder.parse(inputStream);
        return document;
    }
    
  5. # 5 楼答案

    您可以使用GitHub上提供的Scilca XML Progression包

    XMLIterator xi = new VirtualXML.XMLIterator("<xml />");
    XMLReader xr = new XMLReader(xi);
    Document d = xr.parseDocument();
    
  6. # 6 楼答案

    我的代码库中有这个函数,它应该适合你

    public static Document loadXMLFromString(String xml) throws Exception
    {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        InputSource is = new InputSource(new StringReader(xml));
        return builder.parse(is);
    }
    

    另见this similar question