@MaxLich
java developer

Почему не работает вставка узла комментариев после каждого узла с определённым именем в документе XML?

Написал такой код, и он не работает, как нужно:
NodeList ourTags = root.getElementsByTagName(tagName);
            Node commentTag = document.createComment(comment);
            for (int i = 0; i < ourTags.getLength(); i++) {
                if (ourTags.item(i).getNodeType() == Node.ELEMENT_NODE) {
                    Element element = (Element) ourTags.item(i);

                    Node n = element.getParentNode().insertBefore(commentTag, element);
                    System.out.println(n);
                }
            }

Нужно, чтобы после каждого тега с именем tagName вставлялся тег с комментарием. Но у меня вставляется только после последнего. Не могу понять, почему. Если вручную обходишь все несколько элементов NodeList и вставляешь перед каждым тег комментариев, то тоже тег комментариев вставляется только перед последним тегом из списка, к которому я обращался. Перед первым, например, не вставляет. Если же вручную вставляешь только перед первым найденным тегом (они ищутся по имени), то всё нормально вставляется. Но мне нужно, чтобы перед каждым тегом с этим именем стоял тег комментариев.
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@MaxLich Автор вопроса
java developer
Сам нашёл ошибку. Надо было при вставки нового узла сразу же его создавать. А заранее создавал один, и пытался его везде повставлять.
То есть в коде должна быть такая строчка:
element.getParentNode().insertBefore(document.createComment(comment), element)

вместо той, которая есть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы