【问题标题】:How to convert Document object to Input Source?如何将文档对象转换为输入源?
【发布时间】:2011-10-11 13:53:50
【问题描述】:

我正在动态创建一个 XML 文档对象。我需要根据 Schema 验证它。我正在使用 xerces 2。我已经为解析器设置了功能。现在我需要解析以验证 XML。

为此,我需要调用“parser.parse()”。但是 parse() 方法将“InputSource”作为参数。但我有 Document 对象。如何将此 Document 对象转换为“InputSource”以将其传递给 parse() 方法。

谁能帮忙。

最好的问候,

【问题讨论】:

    标签: java xml xerces jdom


    【解决方案1】:
    ByteArrayOutputStream docOutputStream = new ByteArrayOutputStream();
    ((XmlDocument)domDocument).write(docOutputStream);
    ByteArrayInputStream docInputStream = new
    ByteArrayInputStream(docOutputStream.toByteArray());
    InputSource inputSource = new InputSource(docInputStream);
    parser.parse(inputSource);
    

    【讨论】:

      【解决方案2】:

      请参阅此问题以将 Document 转换为 InputStream:how to create an InputStream from a Document or Node

      然后使用 InputSource(java.io.InputStream byteStream) 用 InputSource 包装它。

      【讨论】:

        【解决方案3】:

        你应该可以这样做:

        • 根据您的架构资源创建 javax.xml.validation.Schema 实例。
        • 从架构实例创建 javax.xml.validation.Validator
        • 使用验证器和 javax.xml.transfrom.dom.DOMSource 验证您的 DOM 文档

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-05
          • 2016-11-03
          • 2011-09-22
          • 2015-10-06
          • 2016-07-13
          相关资源
          最近更新 更多