cari

  DOM解析的基本思路:

    1、将整个XML文件一次性读入内存

    2、将整个XML看做一棵树

    3、XML中的每一个标签,属性,文本都看做是树上的一个结点

    4、然后可以对结点进行增删改查的操作

  话不多说,上代码。

  1、首先我在D:\ABC中新建了一个文本文件,重命名为stus.xml,以下是文件中的内容

<?xml version = "1.0" encoding = "GBK" ?>
    <stus class = "S160401A">
    <stu num = "001" >
    <name>张三</name>
    <age>20</age>
    <sex>男</sex>
    </stu>
 
    <stu num = "002">
    <name>李四</name>
    <age>21</age>
    <sex>女</sex>
    </stu>
 
    <stu num = "003">
    <name>王五</name>
    <age>22</age>
    <sex>男</sex>
    </stu>
    </stus>

 在第一行是XML声明895eb4cb0fce28148b0eb46e537da768,version表示版本号,encoding表示编码方式,微软的记事本用的是国标的编码方式,如果要用UTF-8,则要在另存为窗口中修改编码方式为UTF-8。

1351.png

 必须且只能有一对根标签,我写的根标签是b7355a32ec662d706e133688c36c07651f741554ff11b182523620720252f534。其他的就不多说了。

 2、这是一个学生类,定义了一些属性和get、set方法

<span style="font-size: 16px;">public class Student {
	public static String Class;
	private String name;
	private int num;
	private int age;
	private char sex;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getNum() {
		return num;
	}

	public void setNum(int num) {
		this.num = num;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public char getSex() {
		return sex;
	}

	public void setSex(char sex) {
		this.sex = sex;
	}

}</span>

  3、这是用DOM解析的类,看这个类之前还要了解一下。

    DocumentBuilderFactory DOM解析器工厂

    DocumentBuilder DOM解析器

    Document 文档对象

    Node 结点【接口

    Element 元素结点【标签结点】

    Attr 属性结点

    Text 文本结点

    Node 是Document,Element,Attr,Text的父接口

    NodeList  结点列表

    NamedNodeMap 一个结点的所有属性

<span style="font-size: 16px;">import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import bean.Student;

public class DOMParser {

	public static void main(String[] args) throws Exception {

		// 得到解析器工厂对象
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

		// 生产一个解析器对象
		DocumentBuilder builder = factory.newDocumentBuilder();

		// 开始解析XML文件,得到解析的结果,是一个Document对象
		// Document对象叫做文档树对象
		Document dom = builder.parse("D:\\ABC\\stus.xml");

		// 通过Document对象提取数据
		// Document对象的第一个子节点是根节点[根标签]
		Node root = dom.getFirstChild();
		// 获得标签的名字
		String str = root.getNodeName();
		// 获得根节点的属性
		NamedNodeMap attrs = root.getAttributes();
		// 强转成Attr类型 属性类
		Attr attr = (Attr) attrs.getNamedItem("class");
		// 获得属性里的值
		String v = attr.getValue();
		System.out.println(v);

		// 获得所有的学生-------------------------------------
		NodeList list = root.getChildNodes();
		for (int i = 0; i < list.getLength(); i++) {
			Node node = list.item(i);
			// 判断是否是标签结点
			if (node instanceof Element) {
				Element e = (Element) node;
				// 获得标签结点里属性的值
				String num = e.getAttribute("num");
				System.out.println(num);

				// 输出标签中的文本
				// System.out.println(e.getTextContent());

				// 继续获得stu的子节点
				NodeList nodeList = e.getChildNodes();
				for (int j = 0; j < nodeList.getLength(); j++) {
					Node n = nodeList.item(j);
					if (n instanceof Element) {
						Element ele = (Element) n;
						// 获得元素结点的标签名字
						String nodeName = ele.getNodeName();
						// 获得元素结点标签中的文本
						String value = ele.getTextContent();
						if (nodeName.equals("name")) {
							System.out.println("姓名:" + value);
						} else if (nodeName.equals("age")) {
							System.out.println("年龄:" + value);
						} else if (nodeName.equals("sex")) {
							System.out.println("性别:" + value);
						}
					}
				}
			}
		}
	}
}</span>

  自己在其中总结了一些方法:

  DocumentBuilderFactory类:

 public static DocumentBuilderFactory newInstance(); //得到解析器工厂对象
    public abstract DocumentBuilder newDocumentBuilder(); //生产一个解析器对象

  DocumentBuilder类:

    public Document parse(String uri); //解析路径为uri的XML文件,得到解析的结果是一个Document对象

  Node类:

 public Node getFirstChild(); //得到Document对象的第一个子结点,也就是根结点、或者叫根标签,在上面的代码中得到的是stus,看上面的第1点中的XML文件的内容。
    public NamedNodeMap getAttributes();//获得结点的属性
    public NodeList getChildNodes();//获得所有子结点
    public String getNodeName();//获得标签的名字 
    public String getTextContent() throws DOMException;//获得标签结点中的文本

  NamedNodeMap类:    

    public Node getNamedItem(String name);//返回所有名字为name的结点

  Attr类:

    public String getValue();//获得属性里的值

  NodeList类:

    public Node item(int index);//返回第index个结点

  Element类:

    public String getAttribute(String name);//获得标签结点里属性name的值

Atas ialah kandungan terperinci 详解XML- JAXP技术-DOM解析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Anatomi dokumen RSS: Struktur dan ElemenAnatomi dokumen RSS: Struktur dan ElemenMay 10, 2025 am 12:23 AM

Struktur dokumen RSS termasuk tiga elemen utama: 1.: Elemen akar, menentukan versi RSS; 2.: Mengandungi maklumat saluran, seperti tajuk, pautan, dan keterangan; 3.: Mewakili penyertaan kandungan tertentu, termasuk tajuk, pautan, keterangan, dll.

Memahami Dokumen RSS: Panduan KomprehensifMemahami Dokumen RSS: Panduan KomprehensifMay 09, 2025 am 12:15 AM

Dokumen RSS adalah mekanisme langganan mudah untuk menerbitkan kemas kini kandungan melalui fail XML. 1. Struktur dokumen RSS terdiri daripada dan unsur -unsur dan mengandungi pelbagai elemen. 2. Gunakan pembaca RSS untuk melanggan saluran dan mengekstrak maklumat dengan parsing XML. 3. Penggunaan lanjutan termasuk penapisan dan penyortiran menggunakan perpustakaan fikanparser. 4. Kesilapan umum termasuk isu parsing XML dan pengekodan. Format XML dan pengekodan perlu disahkan semasa debugging. 5. Cadangan Pengoptimuman Prestasi termasuk dokumen RSS cache dan parsing tak segerak.

RSS, XML dan Web Moden: Sindikasi Kandungan Deep DiveRSS, XML dan Web Moden: Sindikasi Kandungan Deep DiveMay 08, 2025 am 12:14 AM

RSS dan XML masih penting dalam web moden. 1.RSS digunakan untuk menerbitkan dan mengedarkan kandungan, dan pengguna boleh melanggan dan mendapatkan kemas kini melalui pembaca RSS. 2. XML adalah bahasa markup dan menyokong penyimpanan data dan pertukaran, dan fail RSS didasarkan pada XML.

Beyond Basics: Ciri -ciri RSS Lanjutan Diaktifkan oleh XMLBeyond Basics: Ciri -ciri RSS Lanjutan Diaktifkan oleh XMLMay 07, 2025 am 12:12 AM

RSS membolehkan embedding kandungan multimedia, langganan bersyarat, dan prestasi dan pengoptimuman keselamatan. 1) Kandungan multimedia seperti audio dan video melalui tag. 2) Gunakan ruang nama XML untuk melaksanakan langganan bersyarat, yang membolehkan pelanggan menapis kandungan berdasarkan keadaan tertentu. 3) Mengoptimumkan prestasi dan keselamatan RSSFEED melalui seksyen CDATA dan XMLSchema untuk memastikan kestabilan dan pematuhan piawaian.

Decoding RSS: Primer XML untuk Pemaju WebDecoding RSS: Primer XML untuk Pemaju WebMay 06, 2025 am 12:05 AM

RSS adalah format berasaskan XML yang digunakan untuk menerbitkan data yang sering dikemas kini. Sebagai pemaju web, pemahaman RSS dapat meningkatkan keupayaan pengagregatan kandungan dan kemampuan kemas kini automasi. Dengan mempelajari struktur RSS, parsing dan generasi, anda akan dapat mengendalikan RSSFeeds dengan yakin dan mengoptimumkan kemahiran pembangunan web anda.

JSON vs XML: Mengapa RSS memilih XMLJSON vs XML: Mengapa RSS memilih XMLMay 05, 2025 am 12:01 AM

RSS memilih XML dan bukannya JSON kerana: 1) struktur dan keupayaan pengesahan XML lebih baik daripada JSON, yang sesuai untuk keperluan struktur data kompleks RSS; 2) XML disokong secara meluas pada masa itu; 3) Versi awal RSS didasarkan pada XML dan telah menjadi standard.

RSS: Format berasaskan XML dijelaskanRSS: Format berasaskan XML dijelaskanMay 04, 2025 am 12:05 AM

RSS adalah format berasaskan XML yang digunakan untuk melanggan dan membaca kandungan yang sering dikemas kini. Prinsip kerjanya termasuk dua bahagian: penjanaan dan penggunaan, dan menggunakan pembaca RSS dapat memperoleh maklumat dengan cekap.

Di dalam dokumen RSS: tag dan atribut pentingDi dalam dokumen RSS: tag dan atribut pentingMay 03, 2025 am 12:12 AM

Struktur teras dokumen RSS termasuk tag dan atribut XML. Langkah -langkah parsing dan generasi khusus adalah seperti berikut: 1. Baca fail XML, proses dan tag. 2. Ekstrak ,,, dan lain -lain Maklumat Tag. 3. Mengendalikan tag dan atribut tersuai untuk memastikan keserasian versi. 4. Gunakan cache dan pemprosesan tak segerak untuk mengoptimumkan prestasi untuk memastikan kebolehbacaan kod.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual