У меня есть 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 только для чтения?
Спасибо