解析XML中的字符串可以使用Android提供的XML解析器。Android中常用的XML解析方式有DOM解析、SAX解析和Pull解析。
示例代码:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(inputStream);
// 获取根节点
Element rootElement = document.getDocumentElement();
// 获取子节点
NodeList nodeList = rootElement.getElementsByTagName("tag");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
// 解析节点内容
String value = element.getTextContent();
}
}
示例代码:
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
// 处理节点开始事件
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
// 处理节点结束事件
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
// 处理节点内容
String value = new String(ch, start, length);
}
};
parser.parse(inputStream, handler);
示例代码:
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(inputStream, "UTF-8");
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
// 处理节点开始事件
String tagName = parser.getName();
if ("tag".equals(tagName)) {
// 解析节点内容
String value = parser.nextText();
}
break;
case XmlPullParser.END_TAG:
// 处理节点结束事件
break;
}
eventType = parser.next();
}
以上是三种常用的解析XML的方式,根据实际需求选择适合的方式进行解析。
领取专属 10元无门槛券
手把手带您无忧上云