Изменить xml атрибуты с помощью SaxParser - PullRequest
0 голосов
/ 09 марта 2020

У меня есть XML, и внутри него я хочу изменить для определенных c узлов атрибут value из link , используя SAXParser.

Я сделал нашел { ссылка } и я использовал Attributes2Impl для моего дела.

Что у меня есть:

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();

UpdateLinksHandler linksHandler = new UpdateLinksHandler();
saxParser.parse(xml, linksHandler);
@Override
    public void startElement(String uri, String key, String qName, Attributes attributes) throws SAXException {
        if (qName.equalsIgnoreCase(USEROBJECT)) {
            String link = attributes.getValue("link");
            if (link != null) {
                Attributes2 attrs = (Attributes2) attributes;
                Attributes2Impl newAttrs = new Attributes2Impl();
                for (int i = 0; i < attrs.getLength(); i++) {
                    if (attrs.isSpecified(i)) {
                        String type = attrs.getType(i);
                        String value = attrs.getValue(i);
                        String name = attrs.getQName(i);
                        if (name == "link") {
                            value = modifyLink(value);
                        }
                        newAttrs.addAttribute(null, null, name, type, modifyLink(value));
                    }
                }
                super.startElement(uri, key, qName, newAttrs);
            }
        }

Но я не знаю, если мой подход правильный или как мне получить мой модифицированный xml. Или SAXParser только для чтения?

Спасибо

...