当前位置: 首页 > 面试题库 >

如何从XML字符串中加载org.w3c.dom.Document?

洪安顺
2023-03-14
问题内容

我在字符串中有一个完整的XML文档,想要一个Document对象。Google会产生各种垃圾。什么是最简单的解决方案?(在Java 1.5中)

解决方案 感谢Matt McMinn,我决定完成此实现。对我来说,它具有适当级别的输入灵活性和异常粒度。(很高兴知道错误是来自格式错误的XML-SAXException还是来自错误的IO- IOException。)

public static org.w3c.dom.Document loadXMLFrom(String xml)
    throws org.xml.sax.SAXException, java.io.IOException {
    return loadXMLFrom(new java.io.ByteArrayInputStream(xml.getBytes()));
}

public static org.w3c.dom.Document loadXMLFrom(java.io.InputStream is) 
    throws org.xml.sax.SAXException, java.io.IOException {
    javax.xml.parsers.DocumentBuilderFactory factory =
        javax.xml.parsers.DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    javax.xml.parsers.DocumentBuilder builder = null;
    try {
        builder = factory.newDocumentBuilder();
    }
    catch (javax.xml.parsers.ParserConfigurationException ex) {
    }  
    org.w3c.dom.Document doc = builder.parse(is);
    is.close();
    return doc;
}

问题答案:

在Java 1.5中,这对我有效-我去除了一些特殊的可读性。

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import java.io.ByteArrayInputStream;

public Document loadXMLFromString(String xml) throws Exception
{
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

    factory.setNamespaceAware(true);
    DocumentBuilder builder = factory.newDocumentBuilder();

    return builder.parse(new ByteArrayInputStream(xml.getBytes()));
}


 类似资料:
  • 问题内容: 相反,如果不从文件加载xml,如何从字符串加载呢? 问题答案: 您的XML字符串在哪里。有关更多信息,请参见MSDN文章。

  • 是否可以从base64字符串创建QIcon? 我看到我们可以将base64字符串加载到QByteArray中。我看到我们可以从QPixMap创建一个QIcon。 我尝试了以下方法: 什么都没显示出来。 PS:这里可以试试base64图像。

  • 在JSP页面中,我可以使用JSTL加载xml文件,从xml文件路径或url加载到JSTL变量,如下所示: 现在,如果我的xml文件在String变量而不是文件系统中,我如何做完全相同的事情? 说我有 如何将其导入jstl var“xmldocument”? 谢谢。

  • 这是主活动中的数组 这是我想要将该列表加载到片段中的onclick方法。 我有许多字符串数组,希望为菜单中的每个按钮分配一个。现在我应该把这个代码放在哪里?

  • 问题内容: 我正在尝试像PHP函数一样从字符串加载图像 我怎样才能做到这一点? 我有MySQL Blob字段图像。我正在使用 MySQLdb, 并且不想在PyOpenCV中创建用于处理图像的临时文件。 注意:需要cv(不是cv2)包装函数 问题答案: 这就是我通常用来将数据库中存储的图像转换为Python中的OpenCV图像的方式。 我已添加了从到的转换,因此上面的脚本将显示: 编辑: 从最新的n

  • 问题内容: 我通过通过PHP回显将XML文档发送给AJAX调用来进行响应。为了形成这个XML文档,我遍历了数据库的记录。问题在于数据库中包含带有’<’符号的记录。因此,浏览器自然会在该特定位置引发错误。如何解决? 问题答案: 通过使用(或可能更适当地)使用库来构建XML文档(例如DOMDocument或XMLWriter)来转义这些字符。 另一种替代方法是使用CDATA节,但是您必须注意是否出现。