java - 如何管理 QuickBooks XML 的额外 xml 声明

标签 java xml xml-parsing quickbooks qbxml

在处理 Quickbooks xml 集成时,我遇到了以下 xml:

<?xml version="1.0" ?>
<?qbxml version="5.0" ?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerQueryRq requestID="5001" iterator="Start"> 
      <MaxReturned>10</MaxReturned> 
      <IncludeRetElement>ListID</IncludeRetElement>
    </CustomerQueryRq>
  </QBXMLMsgsRq>
</QBXML>

我熟悉 <?xml ...?>声明,但我对 <?qbxml version="5.0" ?> 感到困惑部分。我假设这是 Quickbooks 理解的 xml 版本。这个 xml 有效吗?可以使用常规的 Java 解析器和转换器进行管理吗?

我已经尝试使用常规 DocumentBuilderFactory 加载 xml 并使用 TransformerFactory 生成输出,但是 <?qbxml ...?>在这个过程中迷路。关于如何配置构建器和转换器以维护 <?qbxml ...?> 的任何想法声明?

最佳答案

<?qbxml version="5.0" ?>是一个处理指令。它对 Quickbooks 有意义,但您可以忽略它,除非它包含您可以以某种方式使用的信息。如果您使用 XSLT 进行处理,则可以使用 <xsl:processing-instruction>创建 PI 和 processing-instruction()在您的模板中匹配它们。一旦您将文档解析为 DOM,我认为没有一种简单的方法可以通过 DOM API 获取 PI,尽管您当然可以创建新的。 PI 有一个 ContentHandler 方法,因此您可以根据需要在解析期间对它们进行操作。

关于java - 如何管理 QuickBooks XML 的额外 xml 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8583656/

相关文章:

java - 如何将 Spring DEBUG 日志重定向到单独的文件?

android - 以编程方式更改在另一个 xml 中用作背景的 border.xml 的 startColor?

java - 如何在java中反转xml节点及其数据

java - 客户端-服务器套接字 : Not reaching if statement

java - 如何使用反射获取字段值中的类?

java - JAXB 序列化接口(interface)到 XML 问题(Map<String,ISomeInterface> 不工作)

c# - XElement 的 XML 架构验证

java - 使用 xstream 填充列表值

xml - 有没有在线工具可以获取XML节点的值?

java - 在编写 Spring 集成测试时从 Spring 组件扫描中排除特定类