3

在处理 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 ...?>声明的任何想法?

4

1 回答 1

4

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

于 2011-12-21T03:04:05.320 回答