2010-11-26 19 views
0

私はJava Web Startディストリビューターアプリケーションを開発中です。クライアントにリソースを提供する方法を定義する構成XMLを使用します。要求中に生成されるリソースがいくつかあります。カスタムSAXParserハンドラを使用してメイン設定ファイルを処理しています。SAXで解析中にXMLノードを取得する方法

設定ファイルでは、サービス可能なXML文書のルートノードを子ノードとして持つ埋め込みXML定義部分を追加したいと考えています。例えば

<Resources> 
    <!-- other resource definitions --> 
    <EmbeddedXMLResource mapsForRequest="embedded.xml"> 
    <HiThere> 
     <ThisIsAnEmbeddedXMLDocument/> 
    </HiThere> 
    </EmbeddedXMLResource> 
    <!-- ... --> 
</Resources> 

DOM文書に<HiThere>ノードを読んだり、少なくともSAX処理をスキップ文字列に<EmbeddedXMLResource>の内側の内容を取り込むのいずれかの方法があります場合、私は思ったんだけど?

埋め込みコンテンツをCDATAセクションに入れることを考えました。このようにして、埋め込みXMLをテキストノードとして読むことはできますが、埋め込みノードのエディタで構文の強調表示が失われてしまいます。 startElement HiThereで

+0

なぜあなたはSAXパーサーを使い始めるのですか? SAXは巨大なドキュメントのメモリの点では効率的ですが、設定ファイルの場合、それは残酷で、他のさまざまなAPIよりもはるかに難しいAPIです。 –

+0

私はノードから別のクラスを構築しているので、XML全体を調べなければなりません。私はSAXパーサーがこれに対してより良いと思った。 – NagyI

+0

あなたはvtd-xmlを見ましたか?それははるかに良いフィットと思われる –

答えて

0

多分...

  1. するendElement HiThereでロケータ
  2. でファイル内の開始位置も終了位置を取得し得ます。
  3. xmlリソースを他のReaderで開き、関連する部分を文字列として抽出するなどの方法があります。

面白いです。

+0

私は簡単な解決策を見つけていないので、私はあなたの答えを受け入れる。それを試してみませんでしたが、代わりにDOMパーサーを使用するように書き直しました。とにかくありがとう。 – NagyI

関連する問題