Я пытаюсь обрабатывать все узлы в списке узлов и заменять специальные символы в тексте.Как обрабатывать все узлы в Nodelist
Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно вернуть объект, содержащий все значения, которые были заменены. Если я использую рекурсию, это невозможно вернуть правильное значение?
Как я могу перебирать нольделист xml для обработки всех элементов и удаления специальных символов? Мой apporach на данный момент сделать это
public static IXMLDatagram removeIllegalCharsFromDataGram(IXMLDatagram dg, String[] illegalValues)
{
NodeList nodeList = dg.getAsDOMElement().getElementsByTagName("*");
for (int i = 0 ; i < nodeList.getLength() ; i++)
{
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE)
{
for(String replaceChar : illegalValues)
{
// do something with the current element
if(node.getTextContent().contains(replaceChar))
{
node.setTextContent(node.getTextContent().replace(replaceChar, ""));
}
}
}
}
return dg;
}
Но это не учитывает дочерние узлы, которые регулярно меняются в этих документах, и часто довольно глубоко вложенных
Благодаря
Вы можете предварительно перебирать все узлы/списки, помещая их все в 'list' какого-то, а затем обработать' list' вместо – MadProgrammer
, а затем как заменить узлы обратно на исходный объект? – Biscuit128
Зачем вам это нужно? Вы изменяете содержимое физических объектов, они не были удалены из DOM, вы просто поддерживаете ссылку на них ... – MadProgrammer