Groovy редактировать XML-файл, оставлять комментарии, разрывы строк

Я хотел бы отредактировать существующий файл XML, сохранив его исходный макет. Сюда входят новые строки, комментарии и т. Д. Редактирование состоит из поиска элементов внутри XML и изменения текстового значения.

Моя первая попытка заключалась в использовании XMLParser с XmlUtil.serialize, но это не удовлетворяет требованиям.

Кто-нибудь знает о какой-либо альтернативе XMLParser, где правки «на месте» исходной XML-строки? Если нет, возможно, существует библиотека, которая выполняет поиск с использованием XPath / GPath и просто возвращает местоположение находки, чтобы я мог выполнить StringBuilder.replace.

EDIT :

На данный момент я сделал эту функцию, чтобы найти строковые индексы узла XML (который я могу найти с помощью xpath), затем я выполняю замену индексов. Отлично работает для простых узлов value :

def find_location_by_node(xmlString, root_xml, node)
{
    current_index = 0;

    for(current_node in root_xml.depthFirst())
    {
      node_name = current_node.name().getLocalPart()
      current_index = xmlString.indexOf('<' + node_name, current_index);

      if(current_node == node)
      {
        end_tag = '</' + node_name + '>';
        end_tag_index = xmlString.indexOf(end_tag, current_index) + end_tag.length();

        return [current_index, end_tag_index];
      }
    }

  return -1;
}
9
задан mbdev 20 January 2011 в 15:39
поделиться