0

いくつかのxmlのようなものを想定

<foo>
  <bar>test</bar>
</foo>

returnType = String のような式の評価

/foo/bar

「テスト」を返します。ただし、代わりにシリアル化されたxmlを取得したいので、次のようなものです

<bar>test</bar>

代わりに返却する必要があります。java の xpath 実装 (xerces) で returnType を確認できないため、単純にオブジェクトを結果として取得することはできず、それが実際にノードである場合は、シリアル化された xml に変換します。

注:式が実際にノード、文字列、数値などを返すかどうかはわかりません。そのため、問題が示すように、文字列以外の eval 関数に適切な戻り値の型を指定できません。シリアル化された xml。

だから私は興味があります->選択したノードのテキストの子の代わりに文字列型のシリアル化されたxmlを取得するためのjava-または(推奨)xpath-way(関数?)のいずれかがありますか?

ありがとう!アレックス

4

3 に答える 3

1

xpath 戻り型 XPathConstants.NODE を使用すると、返された Node を自分でシリアル化できます。

于 2012-05-18T15:51:34.683 に答える
0

さて、結果の戻り値の型を発見するのが難しいことを観察するのは正しいです。これは JAXP の本当の設計上の弱点です。

それが問題になる場合は、Saxon の s9api インターフェースを使用することを検討してください。このインターフェースは、照会できるタイプの XdmValue オブジェクトを返します。ボーナスとして XPath 2.0 へのアクセスも得られます。

于 2012-05-18T17:09:12.693 に答える