java Domj4读取xml文件
先概括,再以代码形式给出。
获取节点:
Iterator Element.nodeIterator(); //获取当前标签节点下的所有子节点
获取 标签:
Element Document.getRootElement(); //获取xml文档的根标签
Element ELement.element("标签名") //指定名称的第一个子标签
Iterator
List
获取属性:
String Element.attributeValue("属性名") //获取指定名称的属性值
Attribute Element.attribute("属性名");//获取指定名称的属性对象
Attribute.getName() //获取属性名称
Attibute.getValue() //获取属性值
List
Iterator
获取文本:
Element.getText(); //获取当前标签的文本
Element.elementText("标签名")//获取当前标签的指定名称的子标签的文本内容
案例:
import java.io.File; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.SAXReader; import org.junit.Test; /** * 第二个dom4j读取xml文件内容 * 节点 * 标签 * 属性 * 文本 * @author APPle * */ public class Demo2 { /** * 得到节点信息 */ @Test public void test1() throws Exception{ //1.读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("./src/contact.xml")); //2.nodeIterator: 得到当前节点下的所有子节点对象(【不包含孙以下的节点】) Iterator<Node> it = doc.nodeIterator();//返回的是一个迭代器对象,迭代器里面存放的就是Node,给出泛型为Node while(it.hasNext()){//判断是否有下一个元素 Node node = it.next();//取出元素 String name = node.getName();//得到节点名称 //System.out.println(name); //System.out.println(node.getClass()); //继续取出其下面的子节点 //只有【标签节点】才有子节点 //判断当前节点是否是标签节点 if(node instanceof Element){ Element elem = (Element)node;//node是Node类型的,因此要向下转型 Iterator<Node> it2 = elem.nodeIterator(); while(it2.hasNext()){ Node n2 = it2.next(); System.out.println(n2.getName()); } } } } /** * 遍历xml文档的所有节点 * @throws Exception */ @Test public void test2() throws Exception{ //1.读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("./src/contact.xml")); //得到根标签。contactList Element rooElem = doc.getRootElement(); getChildNodes(rooElem); } /** * 获取 传入的标签下的所有子节点。Element elem只有Element标签才有子节点 * @param elem */ private void getChildNodes(Element elem){ System.out.println(elem.getName());//获取到了根标签的名称 //得到子节点 Iterator<Node> it = elem.nodeIterator(); while(it.hasNext()){ Node node = it.next(); //1.判断是否是标签节点 if(node instanceof Element){ Element el = (Element)node; //递归 getChildNodes(el); } }; } /** * 获取标签 */ @Test public void test3() throws Exception{ //1.读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("./src/contact.xml")); //2.得到根标签 Element rootElem = doc.getRootElement(); //得到标签名称 String name = rootElem.getName(); System.out.println(name);//contactList //3.得到当前标签下指定名称的【第一个】【子】标签 /*Element contactElem = rootElem.element("contact"); System.out.println(contactElem.getName());*/ //4.得到当前标签下指定名称的所有子标签,指定了contact名称,就得到这个名称的所有同名的标签 //这里制定了名称,有局限性 /*Iterator<Element> it = rootElem.elementIterator("contact"); while(it.hasNext()){ Element elem = it.next(); System.out.println(elem.getName()); }*/ //5.得到当前rootElem标签下的的所有子标签对象,这里会拿出所有子标签对象。推荐使用。 List<Element> list = rootElem.elements(); //遍历List的方法 //1)传统for循环 2)增强for循环 3)迭代器 /*for(int i=0;i<list.size();i++){ Element e = list.get(i); System.out.println(e.getName()); }*/ for(Element e:list){ System.out.println(e.getName()); } /* Iterator<Element> it = list.iterator(); //ctrl+2 松开 l while(it.hasNext()){ Element elem = it.next(); System.out.println(elem.getName()); }*/ //获取更深层次的标签(方法只能一层层地获取) Element nameElem = doc.getRootElement(). element("contact").element("name"); System.out.println(nameElem.getName()); } /** * 获取属性 */ @Test public void test4() throws Exception{ //1.读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("./src/contact.xml")); //获取属性:(先获得属性所在的标签对象,然后才能获取属性) //1.得到标签对象 Element contactElem = doc.getRootElement().element("contact"); //2.得到属性 //2.1 得到指定名称的属性值 /* String idValue = contactElem.attributeValue("id"); System.out.println(idValue); */ //2.2 得到指定属性名称的属性对象Attribute /*Attribute idAttr = contactElem.attribute("id"); //getName: 属性名称 getValue:属性值 System.out.println(idAttr.getName() +"=" + idAttr.getValue());*/ //2.3 得到【所有】属性对象,返回LIst集合。不需要知道属性名称和多少个属性 /*List<Attribute> list = contactElem.attributes();//推荐使用方案 //遍历属性 for (Attribute attr : list) { System.out.println(attr.getName()+"="+attr.getValue()); }*/ //2.4 得到【所有属性】对象,返回迭代器 Iterator<Attribute> it = contactElem.attributeIterator(); while(it.hasNext()){ Attribute attr = it.next(); System.out.println(attr.getName()+"="+attr.getValue()); } } /** * 获取文本 */ @Test public void test5() throws Exception{ //1.读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("./src/contact.xml")); /** * 注意: 空格和换行也是xml的内容 */ String content = doc.getRootElement().getText(); System.out.println(content); //获取文本(先获取标签对象,再获取标签上的文本) Element nameELem = doc.getRootElement().element("contact").element("name"); //1. 得到文本 String text = nameELem.getText(); System.out.println(text); //2. 得到指定子标签名的文本内容 String text2 = doc.getRootElement().element("contact").elementText("phone"); System.out.println(text2); } }
以上就是java Domj4读取xml文件的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Kelajuan XML mudah alih ke PDF bergantung kepada faktor -faktor berikut: kerumitan struktur XML. Kaedah Penukaran Konfigurasi Perkakasan Mudah Alih (Perpustakaan, Algoritma) Kaedah Pengoptimuman Kualiti Kod (Pilih perpustakaan yang cekap, mengoptimumkan algoritma, data cache, dan menggunakan pelbagai threading). Secara keseluruhannya, tidak ada jawapan mutlak dan ia perlu dioptimumkan mengikut keadaan tertentu.

Tidak mustahil untuk menyelesaikan penukaran XML ke PDF secara langsung di telefon anda dengan satu aplikasi. Ia perlu menggunakan perkhidmatan awan, yang boleh dicapai melalui dua langkah: 1. Tukar XML ke PDF di awan, 2. Akses atau muat turun fail PDF yang ditukar pada telefon bimbit.

Ia tidak mudah untuk menukar XML ke PDF secara langsung pada telefon anda, tetapi ia boleh dicapai dengan bantuan perkhidmatan awan. Adalah disyorkan untuk menggunakan aplikasi mudah alih ringan untuk memuat naik fail XML dan menerima PDF yang dihasilkan, dan menukarnya dengan API awan. API awan menggunakan perkhidmatan pengkomputeran tanpa pelayan, dan memilih platform yang betul adalah penting. Kerumitan, pengendalian kesilapan, keselamatan, dan strategi pengoptimuman perlu dipertimbangkan ketika mengendalikan penjanaan XML dan penjanaan PDF. Seluruh proses memerlukan aplikasi front-end dan API back-end untuk bekerjasama, dan ia memerlukan pemahaman tentang pelbagai teknologi.

Alat pemformatan XML boleh menaip kod mengikut peraturan untuk meningkatkan kebolehbacaan dan pemahaman. Apabila memilih alat, perhatikan keupayaan penyesuaian, pengendalian keadaan khas, prestasi dan kemudahan penggunaan. Jenis alat yang biasa digunakan termasuk alat dalam talian, pemalam IDE, dan alat baris arahan.

Permohonan yang menukarkan XML terus ke PDF tidak dapat dijumpai kerana mereka adalah dua format yang berbeza. XML digunakan untuk menyimpan data, manakala PDF digunakan untuk memaparkan dokumen. Untuk melengkapkan transformasi, anda boleh menggunakan bahasa pengaturcaraan dan perpustakaan seperti Python dan ReportLab untuk menghuraikan data XML dan menghasilkan dokumen PDF.

Untuk membuka fail web.xml, anda boleh menggunakan kaedah berikut: Gunakan editor teks (seperti Notepad atau TextEdit) untuk mengedit arahan menggunakan persekitaran pembangunan bersepadu (seperti Eclipse atau NetBeans) (Windows: Notepad Web.xml; Mac/Linux: Open -A -A TextEdit Web.xml)

Gunakan kebanyakan editor teks untuk membuka fail XML; Jika anda memerlukan paparan pokok yang lebih intuitif, anda boleh menggunakan editor XML, seperti editor XML oksigen atau XMLSPY; Jika anda memproses data XML dalam program, anda perlu menggunakan bahasa pengaturcaraan (seperti Python) dan perpustakaan XML (seperti XML.Etree.ElementTree) untuk menghuraikan.

Terdapat dua cara untuk mengeksport XML ke PDF: menggunakan XSLT dan menggunakan perpustakaan mengikat data XML. XSLT: Buat lembaran gaya XSLT, tentukan format PDF untuk menukar data XML menggunakan pemproses XSLT. Perpustakaan mengikat data XML: Import Perpustakaan Pengikat Data XML Buat dokumen PDF Memuatkan Fail PDF Eksport Data XML. Kaedah mana yang lebih baik untuk fail PDF bergantung kepada keperluan. XSLT menyediakan fleksibiliti, manakala perpustakaan mengikat data mudah dilaksanakan; Untuk penukaran mudah, perpustakaan mengikat data lebih baik, dan untuk penukaran yang kompleks, XSLT lebih sesuai.
