2011-12-21 10 views
3

のための余分なXML宣言を管理する方法:のQuickbooks XML統合を扱うとき、私は、次のXML渡って来ているのQuickBooks 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

<?qbxml version="5.0" ?>は処理命令です。それはQuickbooksにとって何かを意味しますが、何とか使うことができる情報が含まれていない限り、無視することができます。 XSLTを使用して処理する場合は、<xsl:processing-instruction>を使用してPIを作成し、processing-instruction()をテンプレートに一致させることができます。ドキュメントをDOMに解析したら、DOM APIを使ってPIを取得する簡単な方法はないと思いますが、確かに新しいAPIを作成できます。 PIのためのContentHandlerメソッドがありますので、必要に応じて解析中にそれらを使用できます。

+0

グーグルを検索する際に正しい名前(処理手順)があれば世界のすべての違いを生む... ;-) – rmarimon

+0

あなたの答えは正しい解決策に導いた...ありがとう... – rmarimon

関連する問題