관련 판독 값 :
Ajax를 사용하여 파일 및 기타 매개 변수를 업로드합니다 (Java 개발)
1. XML 파일 :
XML이란 무엇입니까? XML은 일반적으로 표준 일반 마크 업 언어의 하위 집합 인 확장 가능한 마크 업 언어를 말하며 전자 파일을 구조적으로 만들기 위해 사용되는 마크 업 언어입니다.
2. XML 파일의 장점 :
1) XML 문서의 내용과 구조는 완전히 분리되어 있습니다.
2) 강한 상호 운용성.
3) 표준화 및 통일.
4) 여러 인코딩을 지원합니다.
5) 강한 확장 성.
3. XML 문서를 구문 분석하는 방법 :
XML이 다른 언어로 XML 문서를 구문 분석하는 것은 동일하지만 구현 구문은 다릅니다. 두 가지 기본 구문 분석 방법이 있습니다. 하나는 색소폰 메소드이며 XML 파일의 순서대로 단계별로 구문 분석합니다. 또 다른 분석 방법은 DOM 메소드이고 DOM 메소드의 키는 노드입니다. Dom4J, JDOM 및 기타 방법도 있습니다. 이 기사는 DOM 및 DOM4J 방법과 XML 문서를 읽기 위해 도구 클래스로 캡슐화하는 방법을 소개합니다.
4.xml 문서 :
scores.xml :
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype 학생 [<! element+)> <! 요소 학생 (이름, 코스, 점수)> <! attlist 학생 ID cdata #required> <! 요소 이름 (#pcdata)> <! element cours (#pcdata)> <elept id id = "> <이름> Zhang San </name> <course> javase </course> <core> 100 </score> </stude> <학생 id = "22"> <name> li si </name> <course> Oracle </course> <스코어> </studu> </studs> </studly
5. 돔 파싱 XML
public static void main (String [] args)은 parserconfigurationException, saxException, ioException {// 1. Dom Parser Factory DocumentBuilDerfactory DBF = DocumentBuilDerfactory.newinstance ()를 만듭니다. // 2. Dom Parser Factory DocumentBuilder DB = DBF.NewDocumentBuilder ()에서 Dom Parser를 만듭니다. // 3. dom tree 문서 doc = db.parse ( "scores.xml")를 생성하기 위해 Dom Parser의 문서를 구문 분석합니다. // 4. DOM 트리를 구문 분석하고 문서 내용을 얻습니다 (요소 속성 텍스트) //4.1 루트 요소 점수를 얻습니다. nodelist scoreSlist = doc.getChildNodes (); 노드 스코어즈 노드 = scoreslist.Item (1); System.out.println (scoreslist.getLength ()); //4.2 스코어에서 모든 아동 요소를받습니다. 학생 Nodelist Studentlist = scoresnode.getchildnodes (); System.out.println (StudentList.getLength ()); //4.3 각 학생 (int i = 0; i <StudentList.getLength (); i ++) {Node Stunode = StudentList.Item (i); //system.out.println (stunode.getNodetype ()); // 출력 요소의 속성 ID if (stunode.getNodeType () == node.element_node) {element elem = (요소) stunode; 문자열 id = elem.getAttribute ( "id"); System.out.println ( "id ------>"+id); } // 출력 요소 이름 코스의 자식 요소 코스 점수 NODELIST NCSLIST = Stunode.getChildNodes (); //system.out.println (ncslist.getLength ()); for (int j = 0; if (ncs.getNodetype () == node.element_node) {문자열 이름 = ncs.getNodename (); // 문자열 값 = ncs.getFirstChild (). getNodeValue (); 텍스트는 요소의 자식이므로 getFirstChild String value = ncs.getTextContent (); System.out.println (이름+"----->"+value); }} system.out.println (); }}6. DOM4J 메서드 XML 문서를 구문 분석 :
public static void main (String [] args)은 documentException {// dom4j를 사용하여 scores2.xml을 구문 분석하고 dom tree saxreader reader = new SaxReader ()를 생성합니다. doc = reader.read (새 파일 ( "scores.xml")); // 루트 노드 가져 오기 : 학생 요소 root = doc.getRootElement (); // 학생의 모든 어린이 노드를 얻습니다 : 학생 반복자 <ELECT> it = root.elementiterator (); // 각 학생을 훈련시켜 (it.hasnext ()) {// 각 학생 요소를 얻습니다. stuelem = it.next (); //system.out.println(stuelem); // output student의 속성 : id list <attribute> attrlist = stuelem.attributes (); for (attribute attr : attrlist) {String name = attr.getName (); 문자열 값 = attr.getValue (); System.out.println (이름+"----->"+value); } // 출력 학생의 어린이 요소 : 이름, 코스, 스코어 반복자 <ementire it2 = stuelem.elementiterator (); while (it2.hasnext ()) {요소 elem = it2.next (); 문자열 이름 = elem.getName (); 문자열 text = elem.getText (); System.out.println (이름+"----->"+텍스트); } system.out.println (); }}물론 XML을 구문 분석하더라도 JAR 패키지를 가져와야합니다 (잊지 마십시오).
7. 내 자신의 방식 :
실제 개발 프로젝트에서는 도구 클래스를 사용하는 데 능숙하고 도구 클래스에 반복적으로 사용하는 기능을 캡슐화해야합니다. 따라서 다음 방법은 개발 프로세스 중에 사용하는 방법입니다.
7.1 속성 파일 :
7.1.1 구조적으로 :
.xml 파일은 주로 트리 파일입니다.
.properties 파일은 주로 키 값 키 값 쌍의 형태로 존재합니다.
유연한 관점에서 7.1.2 :
.xml 파일은 .properties 파일보다 유연합니다.
편리한 관점에서 7.1.3 :
.properties 파일은 .xml 파일보다 구성하기 쉽습니다.
7.1.4 적용의 관점에서 :
.xml이 더 유연하기 때문에 .properties 파일은 작고 간단한 프로젝트에 더 적합합니다.
7.2 자신의 속성 문서 :
나는 자신의 프로젝트에서 path.properties 파일을 만들었습니다.이 프로젝트에서 내가 사용할 경로를 저장하고 Name = value의 형태로 저장하는 데 사용됩니다. 예를 들어:
RealPath = d :/file/
7.3 자신의 .properties 파일을 구문 분석합니다.
public class propertiesutil {private static propertiesutil manager = null; 개인 정적 객체 ManagerLock = New Object (); 개인 객체 속성 속성 슬록 = new Object (); 개인 정적 문자열 database_config_file = "/path.properties"; 개인 속성 속성 = null; public static propertiesutil getInstance () {if (manger == null) {synchronized (managerLock) {if (manger == null) {manger = new PropertiesUtil (); }}} 반환 관리자; } private propertiesUtil () {} public static string getProperty (문자열 이름) {return getInstance () ._ getProperty (이름); } 개인 문자열 _getProperty (문자열 이름) {initProperty (); 문자열 property = properties.getProperty (이름); if (property == null) {return ""; } else {return property.trim (); }} 공개 정적 열거 <?> propertynames () {return getInstance () ._ propertynames (); } 개인 열거 <?> _propertyNames () {initProperty (); return properties.propertyNames (); } private void initProperty () {if (properties == null) {synchronized (propertiesLock) {if (properties == null) {loadProperties (); }}}} private void loadProperties () {properties = new Properties (); inputStream in = null; try {in = getClass (). getResourceAsStream (database_config_file); 속성 (in); } catch (예외 e) {System.err .println ( "PropertiesUtil.loadProps ()의 conf 속성을 읽는 오류를 읽습니다." + e); e.printstacktrace (); } 마침내 {try {in.close (); } catch (예외 e) {}}} / ** * 구성 파일 경로 제공 * * @param filepath * @return * / public properties loadProperties (String FilePath) {속성 속성 = 새 속성 (); inputStream in = null; try {in = getClass (). getResourCeasStream (FilePath); 속성 (in); } catch (예외 e) {system.err .println ( "PropertiesUtil.loadProperties ()의 conf 속성을 읽는 오류를 읽습니다." + e); e.printstacktrace (); } 마침내 {try {in.close (); } catch (예외 e) {}} return 속성; }} 사용하기 전에 .properties 파일의 이름 인 DATABASE_CONFIG_FILE 속성에 값을 첨부하면됩니다. 그것을 사용할 때 클래스 이름을 직접 사용할 수 있습니다. getProperty(“realPath”); .properties 파일의 realPath 인 Key로 컨텐츠를 얻으려면.
위는 편집자가 소개 한 Java Development에서 XML 및 속성 구성 파일을 읽는 방법입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 질문이 있으시면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다!