Я хотел бы отредактировать существующий XML-файл, сохранив его исходный макет.Это включает в себя новые строки, комментарии и т. Д. Редактирование состоит из поиска элементов внутри XML и изменения текстового значения.
Моя первая попытка была с использованием XMLParser с XmlUtil.serialize, но это не соответствует требованию.
Кто-нибудь знает о какой-либо альтернативе XMLParser, где правки "на месте" исходной строки XML?Если нет, возможно, есть библиотека, которая выполняет поиск с использованием XPath / GPath и просто возвращает местоположение поиска, чтобы я мог сделать StringBuilder.replace.
EDIT :
На данный момент я сделал эту функцию, чтобы найти строковые индексы узла XML (которые я могу найти, используя xpath), затем я делаю замену на индексах.Прекрасно работает для простых узлов значение :
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;
}