Удаление узлов в XML - PullRequest
       7

Удаление узлов в XML

0 голосов
/ 05 сентября 2011

Я новичок в управлении XML и надеюсь, что смогу получить некоторую помощь от всех вас.

Моя внутренняя система выдает XML-файл со следующим составом узлов.1005 * Теперь деталь, которую нужно изменить, это узел заказа.Данные, которые необходимо сохранить, являются первым и последним узлами оплаты.Любой другой узел, который находится в середине этого, может быть удален или удален.Есть ли способ с E4x сделать это?

Спасибо за вашу помощь.Берто

1 Ответ

0 голосов
/ 06 сентября 2011

Не уверен насчет E4X, но с использованием Rhino , Envjs и jQuery :

Запуск Rhino:

java -jar js.jar -opt -1

Теперь вы должны быть в приглашении Rhino.

Загрузите некоторые библиотеки (я не рекомендую загрузку из Интернета, но для целей примера), прочитайте файл заказов, проанализируйте в xml, удалитеплатежи, затем распечатайте результат ...

load("http://www.envjs.com/dist/env.rhino.1.2.js")
load("https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js")
load("../rhino-scripts/removeFirstAndLastPayments.js")
xmlstr = readFile("../rhino-scripts/orders.xml")
xml = $.parseXML(xmlstr)
removeFirstAndLastPayments(xml)
new XMLSerializer().serializeToString(xml)

Где "removeFirstAndLastPayments" определяется как:

function removeFirstAndLastPayments(root) {
    $(root).find("orders order").each(function (orderIdx, order) {
        var payments = $(order).find("payment");
        if (payments.length > 2) {
            // only remove first and last if there are more than 2 payments
            payments.first().remove();
            payments.last().remove();
        }
    });
}
...