Моя цель - запросить документ XML по XPath. Я не смог найти вариант сделать это с помощью if_ixml
framework. Я нашел эту статью (к сожалению, на немецком языке) о запросе файла XSLT с помощью XPath с использованием CL_XSLT_PROCESSOR
, но, похоже, это больше не работает, кажется, что проблема ->run( space )
, и я получить этот короткий дамп с сообщением:
Не предоставлена действительная программа XSLT
Даже при попытке использовать класс-оболочку CL_PROXY_XPATH
в приведенном ниже коде, я получаю такой же короткий dump.
Такое ощущение, что должен быть класс, чтобы сделать именно это.
DATA(s) = |<?xml version="1.0" encoding="UTF-8"?><codedb><cl id="3">|
&& |<enumeration value="AAA"/><enumeration value="AAB"/><enumeration value="AAC"/>|
&& |<enumeration value="AAD"/><enumeration value="AAE"/>|
&& |</cl></codedb>|.
data(xpp) = new cl_proxy_xpath( ).
xpp->set_source_string( s ).
xpp->run( expression = '//cl[@id=3]/enumeration[@value=$codeValue3]' ). "<== SHORTDUMP
data(nodes) = xpp->get_nodes( ).
"Calculate all values from the nodes
data(node) = nodes->get_next( ).
while node is bound.
write: / node->get_value( ).
node = nodes->get_next( ).
endwhile.