java Domj4가 xml 파일을 읽습니다.
먼저 요약한 뒤 코드 형태로 전달하세요.
노드 가져오기:
Iterator Element.nodeIterator() // 현재 레이블 노드 아래의 모든 하위 노드 가져오기
태그 가져오기:
Element Document.getRootElement(); //xml 문서의 루트 태그 가져오기
Element ELement.element("태그 이름") //지정 첫 번째 A 하위 태그
> Element.elements(); // 모든 하위 태그 가져오기
tributeValue("속성 이름") //지정된 이름의 속성 값 가져오기
Attribute Element.attribute("속성 이름"); //지정된 이름의 속성 개체 가져오기
Attibute.getValue() //속성 값 가져오기
목록< ;속성>
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); } }
위 내용은 java Domj4에서 xml 파일을 읽는 내용이며, 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php. CN)!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 XML 속성 값을 수정하고, 잘 형성, 스키마/DTD 검증 및 문자 인코딩에서 비롯된 제한을 강조합니다. 부적절한 탈출 및 데이터 유형 불일치와 같은 함정을 강조하고 Sicurit을 해결합니다.

이 기사는 효율적인 뉴스 집계 및 콘텐츠 큐 레이션을 위해 RSS 피드를 사용하는 방법을 설명합니다. RSS 리더 (Feedly 및 Inoreader와 같은)를 사용하여 피드에 가입하고, 피드를 구성하고, 대상 콘텐츠에 대한 기능을 활용하는 것에 대해 자세히 설명합니다. Bene

XML 컨텐츠 수정은 특히 큰 파일의 응용 프로그램 성능에 큰 영향을 미칩니다. 구문 분석, DOM 조작, 직렬화 및 I/O 운영이 이에 기여합니다. 최적화 전략에는 스트리밍 파서 사용, 최소화 d가 포함됩니다. d

이 기사는 효율적인 대규모 XML 파일 수정을 해결합니다. 그것은 메모리 내 처리의 비 효율성을 강조하여 색소폰 및 스테세스 구문 분석과 같은 스트리밍 접근법을 옹호합니다. 최적화 전략에는 증분 구문 분석, 최적화 된 데이터 S가 포함됩니다

이 기사는 RSS 피드를 사용하여 컨텐츠 신디케이트 구현에 대해 자세히 설명합니다. RSS 피드 생성, 대상 웹 사이트 식별, 피드 제출 및 모니터링 효과가 포함됩니다. 제한된 제어 및 풍부한 미디어 지원과 같은 과제도 원반입니다.

이 기사는 XML 데이터 변환 방법을 자세히 설명합니다. XML 문서 내에서 데이터 형식 변환의 과제를 해결하여 XSLT 및 스트림 처리와 같은 효율적인 기술을 강조합니다. 이 기사는 또한 Sch와 같은 잠재적 인 함정을 다룹니다

이 기사에서는 웹 컨텐츠 관리를위한 ATOM Publishing Protocol (ATOMPUB)을 설명합니다. 컨텐츠 생성, 검색, 업데이트 및 삭제를위한 Atom Format과 함께 HTTP 방법 (Get, Post, Put, Delete)을 사용하여 세부 정보를 제공합니다. 이 기사는 또한 Atompub에 대해 설명합니다

이 기사는 XML 및 시맨틱 웹 기술을 통합합니다. 핵심 문제는 시맨틱 상호 운용성을 위해 XML의 구조화 된 데이터를 RDF 트리플에 매핑하는 것입니다. 모범 사례에는 온톨로지 정의, 전략적 매핑 접근 방식, 신중한 ATT가 포함됩니다.
