問題タブ [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.
java - VTD-XML: 現在の要素のタグ名を取得するには?
VTDNav docsには、属性の値を取得するメソッド、要素のテキスト値を取得するメソッドが表示されますが、現在の要素のタグ名を取得する方法が実際には見つかりませんか?
xml - VTD-XML 2.11 XPath 式 count() が例外 com.ximpleware.XPathEvalException で失敗する: Function Expr can't eval to node set
VTD-XML 2.11 (Java) API を使用count(//b)して、XML ドキュメントの XPath 式を評価する<a><b/><b/></a>と、代わりに の結果が得2.0られ、次の例外で失敗します。
問題を再現するための非常に単純なテスト ケースを次に示します。
count() 関数は、有効な XPath 1.0 式ですが、VTD-XML で XPath 式の開始として使用できないようです。
どんなヒントでも大歓迎です。
xpath - XPath 1.0:特定の親を持つすべての子ノードを選択します。親にそのような子ノードがない場合は空を選択しますか?
XPath 1.0と以下のXMLを使用して、「b」の親を持つすべての「c」ノードを選択するにはどうすればよいですか。「b」の親に「c」ノードがない場合は「」を選択します。つまり{"c1", "", "c3"}、結果のノードとして取得します。セット(ドキュメント順)?
私はVTD-XML2.11(Java)を使用しており、ループせずに上記の結果を返す単一のXPath評価を探しています。
私は質問を閲覧し、オリバー・ベッカーの方法などの興味深い指針を見つけましたが、これまでのところ解決策を見つけることができませんでした。
どんな助けでもいただければ幸いです。
ありがとう。
vtd-xml - VTD-XMLXMLドキュメントの作成
私はこれを行う方法について少し混乱しています、すべてのドキュメント/例はxmlドキュメントを読んで編集する方法を示していますが、最初からxmlを作成する明確な方法はないようです、私はむしろ出荷する必要はありません1つを編集するためにダミーのxmlファイルを使用した私のプログラム。何か案は?ありがとう。
xml - 予期しないNodeRecorderの動作
次のXMLドキュメントがあるとします。
ノードに移動するためにXPathを発行してい<PartyName>ます。次に、2番目のXPathを発行してすべての<Name>ノードを取得し、それらの位置を記録します。
なんらかの理由でNodeRecorder.iterate()、ノードが正しく記録されていても、すぐに-1を返しているので、と呼んresetPointer()で順方向に進んでいます。このタイプのロジック(ただし、異なるXPath)を使用した他のドキュメントが機能しましたが、これは機能しません。何か案は?
デモコード:
出力:
編集:ネストの少ない変更されたドキュメントを試したところ、これは機能します(partyNameXPathを "PartyName"だけに変更)。問題は深さに関連しているようです。
出力:
java - VTD-XML 大きなファイルの分割 - メモリ不足
VTD-XML parseGzip() が完全なファイルをメモリにロードし、その結果 OutOfMemory が発生することがわかりました。
私の Eclipse -Xms20m および -Xmx100m と Gzipped Xml ファイルのサイズは 50MB です。私が使用しているサンプル コードは次のとおりです。
vtd-xml - VTD-XML を使用して特定の要素の名前空間を検索する
私のアプリケーションでは、ルート ノードの名前空間を決定するだけでよいので、理想的には、この名前空間を取得するために単一の操作を実行したいと考えています。
宣言されたすべての名前空間を取得するために XPath を使用するコードがあります/*/namespace::*(
ここで明らかな何かが欠けていると確信していますが、 xmlns: 属性は getAttrValNS で考慮されないため、特定の要素の名前空間を取得する最良の方法は何ですか?
ルートノードで宣言されたすべての名前空間ではなく、ルートノードの名前空間を提供する単純なXPathはありますか?
java - 2 つの非常に大きな XML ファイルをレコードごとに比較する最良の方法
2 つの大きな XML ファイル (3GB、80000 レコード) があります。1 つは別の更新されたバージョンです。変更された (追加/更新/削除された) レコードを特定したい。ファイルにはいくつかのタイムスタンプがありますが、信頼できるかどうかはわかりません。ファイル内のレコードの順序と同じです。
ファイルが大きすぎて、XML としてメモリにロードできません (1 つでも、両方でもかまいません)。
私が考えていた方法は、IDのメモリ内マップを使用してレコードレベルで最初のファイル内のコンテンツオフセットのある種の解析/インデックス作成を行い、次に2番目のファイルをストリーミングし、ランダムアクセスを使用してそれらのレコードを比較することです両方に存在します。これにはおそらく 2 ~ 3 回のパスが必要ですが、問題ありません。しかし、それを可能にする簡単なライブラリ/アプローチが見つかりません。VTDNavHuge を使用した vtd-xml は興味深いように見えますが、事前に保存された場所に基づいたランダム アクセスの再アクセスとレコードの読み込みをサポートしているかどうかを (ドキュメントから) 理解できません。
Java ライブラリ/ソリューションが推奨されますが、C# も許容されます。