java Domj4讀取xml文件
先概括,再以程式碼形式給出。
取得節點:
Element.nodeIterator(); //取得目前標籤節點下的所有子節點
Element Document.getRootElement(); //取得xml文檔的根標
Iterator
List
取得屬性:
Attribute Element.attribute( "屬性名稱");//取得指定名稱的屬性物件
而ibute.getValue() List
Iterator
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); } }

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何構建、驗證和發布RSSfeeds? 1.構建:使用Python腳本生成RSSfeed,包含標題、鏈接、描述和發布日期。 2.驗證:使用FeedValidator.org或Python腳本檢查RSSfeed是否符合RSS2.0標準。 3.發布:將RSS文件上傳到服務器,或使用Flask動態生成並發布RSSfeed。通過這些步驟,你可以有效管理和分享內容。

JSONFeed是一種基於JSON的RSS替代方案,其優勢在於簡潔性和易用性。 1)JSONFeed使用JSON格式,易於生成和解析。 2)它支持動態生成,適用於現代Web開發。 3)使用JSONFeed可以提升內容管理效率和用戶體驗。

XML在RSS中具有結構化數據、可擴展性、跨平台兼容性和解析驗證的優勢。 1)結構化數據確保內容的一致性和可靠性;2)可擴展性允許添加自定義標籤以適應內容需求;3)跨平台兼容性使其在不同設備上無縫工作;4)解析和驗證工具確保Feed的質量和完整性。

rssfeedsarexmldocuments usedforcontentAggregation and distribution.totransformthemintoreadableContent:1)parsethethexmlusinglibrarieslibrariesliblarieslikeparserinparserinpython.2)andledifferentifferentrssssssssssssssssssssssssssssssssssssssssssssssersions andpotentionparsingrorS.3)

使用XML構建RSSfeed的步驟如下:1.創建根元素並設置版本;2.添加channel元素及其基本信息;3.添加條目(item)元素,包括標題、鏈接和描述;4.轉換XML結構為字符串並輸出。通過這些步驟,你可以從零開始創建一個有效的RSSfeed,並通過添加額外的元素如發布日期和作者信息來增強其功能。

RSS文檔的工作原理是通過XML文件發佈內容更新,用戶通過RSS閱讀器訂閱並接收通知。 1.內容髮布者創建並更新RSS文檔。 2.RSS閱讀器定期訪問並解析XML文件。 3.用戶瀏覽和閱讀更新內容。使用示例:訂閱TechCrunch的RSS源,只需複制鏈接到RSS閱讀器中即可。

RSS的高級功能包括內容命名空間、擴展模塊和條件訂閱。 1)內容命名空間擴展RSS功能,2)擴展模塊如DublinCore或iTunes添加元數據,3)條件訂閱根據特定條件篩選條目。這些功能通過添加XML元素和屬性實現,提升信息獲取效率。

創建RSS文檔的步驟如下:1.使用XML格式編寫,根元素為,包含元素。 2.在內添加、、等元素描述頻道信息。 3.添加元素,每個代表一個內容條目,包含、、、等。 4.可選地添加和元素,豐富內容。 5.確保XML格式正確,使用在線工具驗證,優化性能並保持內容更新。
