Java 怎么将XML标记中的属性提取到Map中

2019年7月21日19:38:43Java 怎么将XML标记中的属性提取到Map中已关闭评论 413 1117字阅读3分43秒

1.简介

Java 怎么将XML标记中的属性提取到Map中?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */


import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.Attribute;
import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Main {
    public static Map<String, String> extractAttributesFromXmlTagIntoMap(
            InputStream input, String tagName) throws XMLStreamException {

        XMLEventReader eventReader = XMLInputFactory.newFactory()
                .createXMLEventReader(input);
        final Map<String, String> attributesMap = new HashMap<String, String>();

        while (eventReader.hasNext()) {
            XMLEvent event = eventReader.nextEvent();

            if (event.isStartElement()) {
                final StartElement startElement = event.asStartElement();

                if (startElement.getName().getLocalPart() == tagName) {
                    Iterator<Attribute> attributes = startElement
                            .getAttributes();

                    while (attributes.hasNext()) {
                        final Attribute attr = attributes.next();
                        attributesMap.put(attr.getName().toString(), attr
                                .getValue().toString());
                    }
                }

            }

        }

        return attributesMap;
    }
}

 
继续阅读
编程十万个怎么办