Я новичок в Саксонии.Saxon HE 9.7 Результаты XQuery и существующий документ
В моем приложении java у меня есть требование о том, что мне нужно XQuery существующий документ dom4j. XQuery это заказать несколько элементов в порядке убывания по SerialNo:
<?xml version="1.0" encoding="UTF-8"?>
<dataOfBooks:DataOfBooks xmlns:dataOfBooks="DataOfBooks">
<Id>ID123</Id>
<books>
<book>
<name>ccc</name>
<serialNo>77</serialNo>
</book>
<book>
<name>aaa</name>
<serialNo>99</serialNo>
</book>
</books>
</dataOfBooks:DataOfBooks>
После того, как я получаю результаты XQuery, мне нужно, чтобы добавить их обратно к выше существующему документу. Я попытался использовать net.sf.saxon.s9api. Мне удалось вернуть результаты XQuery, как показано ниже:
<?xml version="1.0" encoding="UTF-8"?>
<result:sequence
xmlns:result="http://saxon.sf.net/xquery-results"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<result:element>
<book xmlns:data="dataOfBooks">
<name>aaa</name>
<serialNo>99</serialNo>
</book>
<book xmlns:data="dataOfBooks">
<name>aaa</name>
<serialNo>77</serialNo>
</book>
</result:element>
</result:sequence>
Но у меня есть две проблемы. 1) результат имеет пространства имен и лишние вещи, которые я не хочу. 2) Мне не очень понятно, какой Saxon API использовать для добавления результатов XQuery в существующий документ. Так что результирующий документ выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<dataOfBooks:DataOfBooks xmlns:dataOfBooks="DataOfBooks">
<Id>ID123</Id>
<books>
<book>
<name>aaa</name>
<serialNo>99</serialNo>
</book>
<book>
<name>ccc</name>
<serialNo>77</serialNo>
</book>
</books>
</dataOfBooks:DataOfBooks>
Еще один вопрос - я попытался с помощью dynamicContext и treeinfo классов, так как я, хотя использование treeinfo API может быть более оптимальным, но не повезло. Если вы считаете, использование TreeInfo API является эффективным, я очень ценю пример кода для моего требования. Ваша помощь очень ценится.
Заранее благодарим за ваше время и интерес.
Если вы предоставляете информацию о запросе, мы можем сказать вам, где вы пошли не так, и если вы поставляете детали вашего кода Java, то мы можем предложить усовершенствования. –