0

XML ファイルに対して Xquery を実行しようとしていますが、xmlObject.execQuery() を呼び出すたびに、InnerXml ではなく OutterXml に渡されます。説明させてください、私はこのXMLを持っています:

<test><MyXml><someValues><MoreNodes>Value1</MoreNodes></someValues></MyXml></test>

そして、これは私のコードです:

XmlObject inputXml = XmlObject.Factory.parse(xmlFileContent).selectChildren(new QName("test"))[0];
    paramMap.put("var1", inputXml);

    options.setXqueryVariables(paramMap);

    XmlObject[] resultsObjects = xmlObject.execQuery("declare variable $var1 as element() external; <a>{$var1/someValues/MoreNodes}</a>", options);

しかし、これは を返します<a/>

XQueryを次のように変更すると

declare variable $var1 as element() external; <a>{$var1/MyXml/someValues/MoreNodes}</a>

次に、期待する結果が得られます。<a><MoreNodes>Value1</MoreNodes></a>

これらは私が行っているテストにすぎませんが、実際には XQuery はコンパイルされ、OSB で実行されているファイルから読み取られるため、XQuery の内容を変更して正しい XPath を使用することはできません。

私の問題を解決する方法について何か考えはありますか?

.selectChildren(new QName("test"))[0];ところで、コードを削除するとxmlObject.execQuery失敗します。

4

1 に答える 1