search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

Home Backend Development XML/RSS Tutorial Android dom parses xml method

Android dom parses xml method

Feb 17, 2017 pm 03:02 PM
android dom xml

First create an xml file yourself: DomTest.xml

<?xml version="1.0" encoding="utf-8"?>
<classes>
	<group name="一年级" num="10">
		<person name="小明" age="7">
			<chinese>
				语文80
			</chinese>
			<english>
				英语89
			</english>
		</person>
		<person name="小强" age="8">
			<chinese>
				语文90
			</chinese>
			<english>
				英语99
			</english>
		</person>
	</group>
	<group name="二年级" num="20">
		<person name="小文" age="8">
			<chinese>
				语文85
			</chinese>
			<english>
				英语95
			</english>
		</person>
		<person name="小中" age="9">
			<chinese>
				语文80
			</chinese>
			<english>
				英语90
			</english>
		</person>
	</group>
</classes>

The parsed result is shown as follows:

Let’s analyze the source code:

/**
 * 用dom方式 解析xml 文件
 * @param fileName
 */
	private String domXmlParse(String fileName) {
		String str="";
		// xml文档创建工厂
		DocumentBuilderFactory docFactory = DocumentBuilderFactory
				.newInstance();
		// xml文档创建实例
		DocumentBuilder docBuilder;
		// xml文档
		Document doc = null;
		InputStream inStream = null;
		try {
			docBuilder = docFactory.newDocumentBuilder();
			// 从assets文件夹下获取文件 转换成输入流
			inStream = this.getResources().getAssets().open(fileName);
			doc = docBuilder.parse(inStream);
			// 获取xml跟元素
			Element rootEle = doc.getDocumentElement();
			// 二级父元素的list列表
			NodeList groupNode = rootEle.getElementsByTagName("group");
			// NodeList childNode = rootEle.getElementsByTagName("person");
			// 遍历Classe下所有的group
			for (int i = 0; i < groupNode.getLength(); i++) {

				Element groupEle = (Element) groupNode.item(i);
				String groupName = groupEle.getAttribute("name");
				String num = groupEle.getAttribute("num");
				str =str+"name ="+groupName+" num = "+num+"\n";
				
				Log.e("xml", "name = " + groupName + "  num = " + num);

//				NodeList personNode = groupNode.item(i).getChildNodes();
				NodeList personNode = groupEle.getElementsByTagName("person");
				// 遍历group下的所有person
				for (int j = 0; j < personNode.getLength(); j++) {
					Element personEle = (Element) personNode.item(j);
					String name = personEle.getAttribute("name");
					String age = personEle.getAttribute("age");
					str =str+"personName ="+name+" personAge = "+age+"\n";
					
					Log.e("xml", "name = " + name + "   age = " + age);

					Element chineseEle = (Element) personEle
							.getElementsByTagName("chinese").item(0);
					Element englistEle = (Element) personEle
							.getElementsByTagName("english").item(0);
					String chinese = chineseEle.getFirstChild().getNodeValue();
					String english = englistEle.getFirstChild().getNodeValue();
					str =str+"chinese = "+chinese+" english = "+english+"\n";
					
					Log.e("xml", "chinese = " + chinese + "   english = "
							+ english);
				}
			}

		} catch (ParserConfigurationException e1) {
			e1.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		}
		return str;
	}

Defines a set of interfaces for the parsed version of an XML document. The parser reads in the entire document and builds a memory-resident tree structure that code can then manipulate using the DOM interface. Advantages: The entire document tree is in memory, easy to operate; supports multiple functions such as deletion, modification, and rearrangement; Disadvantages: Transferring the entire document into memory (including useless nodes) wastes time and space; Usage occasions: Once parsed Documents also need to access this data multiple times; hardware resources are sufficient (memory, CPU).


The above is the content of the android dom parsing xml method. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

ArtGPT

ArtGPT

AI image generator for creative art from text prompts.

Stock Market GPT

Stock Market GPT

AI powered investment research for smarter decisions

Popular tool

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Tencent Yuanbao official website latest login entrance Tencent Yuanbao AI usage address Tencent Yuanbao official website latest login entrance Tencent Yuanbao AI usage address Feb 04, 2026 pm 06:06 PM

The latest login portal of Tencent Yuanbao official website is https://yuanbao.tencent.com/, which is a direct web portal deployed by Tencent. It supports mainstream browsers without installation and has features such as lightweight loading, multi-round conversation memory, and barrier-free access.

What is a 'hackathon” champion in the cryptocurrency industry? What do they gain? What is a 'hackathon” champion in the cryptocurrency industry? What do they gain? Jan 31, 2026 pm 02:18 PM

The champion of the currency circle's "Hackerathon" is the one with the highest comprehensive score through on-chain testing, K verification, and anonymous review. He or she will enjoy cash rewards (such as $75,000 Grant), token incentives (such as 75,000 flash tokens), and ecological rights (such as conference speeches, protocol access, and application listings).

How to combine HTML5 password with fingerprint verification_Integrate biometrics to provide a convenient method [Method] How to combine HTML5 password with fingerprint verification_Integrate biometrics to provide a convenient method [Method] Feb 07, 2026 am 09:10 AM

HTML5 does not support direct calls to the fingerprint sensor, and biometric login must be implemented in an HTTPS environment through WebAuthenticationAPI (navigator.credentials); it is only a pure front-end control and does not have access to the hardware. The browser sandbox mechanism prohibits scripts from reading fingerprints or triggering the sensor.

How to enable Android subsystem developer mode in Win11_Windows11 WSA settings debugging How to enable Android subsystem developer mode in Win11_Windows11 WSA settings debugging Jan 26, 2026 pm 12:24 PM

If you have turned on the WSA developer mode, you can install the APK through ADB. The operations include: 1. Turn on the developer mode in WSA "Advanced Settings" and confirm the IP and port; 2. If the switch is gray, use PowerShell to execute the Reset-AppxPackage and adb restart commands; 3. Use adbconnect to verify whether the connection is successful.

How to accurately pass and summarize multi-level product prices in nested RecyclerView How to accurately pass and summarize multi-level product prices in nested RecyclerView Feb 06, 2026 pm 08:54 PM

This article explains in detail how to correctly calculate and return the total price of each store (including the main price of the product, the price and quantity of add-ons) in the three-layer nested RecyclerView (store → product → add-on) structure to avoid the problem of value loss caused by the Adapter life cycle and data binding timing.

How to turn on low blue light mode in Thunderbird AirPlus_Turn on eye protection mode in Thunderbird AirPlus [Protection] How to turn on low blue light mode in Thunderbird AirPlus_Turn on eye protection mode in Thunderbird AirPlus [Protection] Feb 07, 2026 pm 07:16 PM

Thunderbird AirPlus can turn on the low blue light mode in four ways: 1. Press and hold the right dial on the temple for 2 seconds to quickly start and stop; 2. Adjust the "Display and Brightness → Eye Protection Mode" in the magic box settings; 3. ThunderbirdVisionApp remote synchronization configuration; 4. HDMI source device linkage to trigger hardware-level protection.

What is SAX parsing XML? The difference between SAX and DOM What is SAX parsing XML? The difference between SAX and DOM Feb 05, 2026 am 06:54 AM

SAX parsing is an event-driven streaming XML processing method that triggers callbacks while reading. It has constant memory usage and is suitable for large files or memory-limited scenarios. DOM loads XML as a memory tree, which supports random access but consumes large memory.

Application of html statements_Comparison of loading speed of html statements on different devices [Introduction] Application of html statements_Comparison of loading speed of html statements on different devices [Introduction] Feb 07, 2026 am 09:39 AM

HTML loading speed is not determined by tag type, but depends on resource volume, network transmission, browser parsing efficiency and device performance differences; mobile terminals need to avoid blocking scripts, inline styles, deep nesting and uncompressed HTML.

Related articles