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を作成することはできます。PIにはContentHandlerメソッドがあるため、必要に応じて、解析中にPIを使用して処理を行うことができます。

于 2011-12-21T03:04:05.320 に答える