1

XPath式を評価するレガシーコードを処理する必要があります。これは、結果がNodeListに解決されることを期待しています。このコードはNodeListを使用して、XPath式によって選択されたノードの数を識別します。コードは、1つのノードが選択されている場合にのみ続行されます。

次に、戻り型がStringであるstring-join関数を使用する必要があります。別のXPath関数を使用してStringをNodeListに変換する方法はありますか?理想的には、文字列を、テキストコンテンツが文字列値となる1つの要素を持つNodeListに変換します。exsl:node-set()を試してみましたが、成功しませんでした(Saxon-HEプロセッサ)。

4

3 に答える 3

1

別の XPath 関数を使用して String を NodeList に変換する方法はありますか?

いいえ、XPath は単なる XML ドキュメントのクエリ言語であり、ノードを作成しません

レガシ コードが XPath 式が NodeList に評価されることを期待し、XPath 式の評価結果が単なる文字列である場合、新しいコードを記述せずにそのレガシ コードを再利用するには、XPath 式を変更して、いずれかまたはより多くのノード。

または、XPath 式の評価結果を使用する独自のコードを記述します。

于 2012-01-27T14:27:49.623 に答える
0

XPath (2.0 であっても) は新しいノードを作成できません。そのためには、XQuery または XSLT が必要です。Saxon は両方をサポートしているため、選択することができます。

于 2012-01-27T10:55:03.007 に答える
0

Saxon XPath API の周りに Java レイヤーを配置し、この Java レイヤーで文字列から NodeList への変換を行うことをお勧めします。Java レイヤーは JAXP XPath インターフェースを実装できるため、実際の XPath エンジンであるかのように「ふりをする」ことができます。

于 2012-01-27T13:23:26.403 に答える