在处理 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/