問題タブ [vtd-xml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml-parsing - VTD-xml は適切な形式のファイルを無視します
私はxmlファイルを解析します(このファイルの平和):
vtd-xml を使用しましたが、この例外がありました。
com.ximpleware.extended.EntityExceptionHuge: Errors in Entity: Illegal entity char
これは、ファイルに「エンティティ」が含まれていることを意味します。したがって、vtd-xml が検証ファイルを無視して正しくパーシングを行うにはどうすればよいですか。
ありがとう
xml - ファイルをメモリに読み込まずに VTD-XML のインデックスを作成できますか
メモリバウンドおよび CPU バウンドのデバイス (モバイルなど) で一連の XML ファイルにランダムアクセスを行う必要があります。VTD-XML でできることを読んだことがありますが、インデックス作成機能に関する情報はほとんどないようです。
a- コンピューター/デバイス上のインデックス A b- 別のコンピューター/デバイスにインデックスをコピーする c- インデックスを使用して、XML の小さなフラグメントにアクセスします (XML 全体をメモリに読み込む必要はありません)。 )
次に、小さな XML フラグメントを使用して、好きな種類の変換 (通常の XML フラグメントと同様に XSLT など) を適用できます。
次に、VTD-XML 形式がプラットフォームに依存することを示唆する 1 つの投稿を読みました。誰かがそうであることを確認できますか。
乾杯
クリス
java - VTD-XML および Xpath 2.0 エスケープ文字列
VTD-XML を使用して Java で次の xpath 式を実行しようとすると、予期しないエラーが発生します。
コード:
エラー:
これはバグではありませんか?XPath 2.0 で一重引用符をエスケープしても問題ないという印象を受けましたか? 同じドキュメントを使用して XML Spy で xpath クエリを実行しようとすると、正常に実行されます。
java - VTD-XML 拡張を使用して大きな XML (3GB 以上) を吐き出す方法
最小サイズが 3GB の xml を分割する必要があります。Windows OS の 64 ビット JVM では、1.5GB のヒープ領域しか提供できません。VTDNavHuge ではなく、VTDNav のみを使用したサンプル コードをインターネット上で入手しました。議題は、上記の巨大な XML を読み取り、Xpath を使用してそこから特定のノードを抽出し、上記の抽出されたコンテンツで新しい XML を作成することです。VTD 拡張を使用して最大 256 GB のファイルを処理できることも言及されていましたが、常に OutOfMemomry 例外が発生します。それは VTDNavHuge を使用しています。提供された開発環境で上記のタスクを完了するためのサンプル コードを教えてください。>3GB サイズのファイルと 1.5GB のヒープスペース。VTD XML 拡張を使用してファイルを解析しているときに、メモリ マップ モードを使用しようとしています。
java - Java: 親ノードを持つ小さな XML ドキュメントに XML ストリームを分割する方法。VTD-XML
VTD XML と XPath を使用して大きな xml を読み取り、結果を複数のノードに分割する必要があります。ここでいくつかの解決策を見つけましたが、ノードを分割しますが、親情報はありません。
私が探している理由:
XPath 文字列: /CATALOG/MAIN/CD XPath ドキュメントに基づいて分割する必要があります
1) 初期文書:
<CATALOG>
<MAIN id="1">
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
</CD>
<CD>
<TITLE>Empire Dummy</TITLE>
<ARTIST>John Doe</ARTIST>
</CD>
<USEFUL>Useful node</USEFUL>
</MAIN>
<MAIN id="2">
<CD>
<TITLE>Still got the blues</TITLE>
<ARTIST>Gary More</ARTIST>
</CD>
</MAIN>
<IGNORED>Ignored node</IGNORED>
</CATALOG>
2) 結果: 文書 1:
<CATALOG>
<MAIN id="1">
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
</CD>
<USEFUL>Useful node</USEFUL>
</MAIN>
</CATALOG>
文書 2:
<CATALOG>
<MAIN id="1">
<CD>
<TITLE>Empire Dummy</TITLE>
<ARTIST>John Doe</ARTIST>
</CD>
<USEFUL>Useful node</USEFUL>
</MAIN>
</CATALOG>
文書 3:
<CATALOG>
<MAIN id="2">
<CD>
<TITLE>Still got the blues</TITLE>
<ARTIST>Gary More</ARTIST>
</CD>
</MAIN>
</CATALOG>
お時間とご提案をいただきありがとうございます。
よろしくお願いします!
java - VTD-XML が XML ドキュメントのエスケープ文字列を台無しにしているようです
一部のフィールドに「&」などのエスケープされた XML 文字が含まれる XML データ セット (DrugBank データベースはこちらから入手可能) に取り組んでいます。
問題をより具体的にするために、シナリオの例を次に示します。
ドキュメント全体が巨大であるため、次のように解析しています。
finerParse
サンプル xml (同じデータからコピーして貼り付けたスニペット) を使用してメソッドをテストしたところ、問題なく動作しました。しかし、上記のコードから呼び出すと、エラー メッセージ で失敗しましたErrors in Entity: Illegal entity char
。入力finerParse
(つまり、drugXML
文字列) を出力する&pg=PA440
と、元の xml の文字列が "&pg=PA440" に変更されていることに気付きました。
なぜこうなった?私がしているのは、非常によく知られているパーサーを使用して解析することだけです。
PS最初にコンテンツ文字列を取得してその文字列を渡す代わりに、VTDNavを引数として渡すだけの代替ソリューションを見つけました。finerParse
しかし、上記のアプローチで何がうまくいかないのか、私はまだ興味があります。