집 >백엔드 개발 >XML/RSS 튜토리얼 >Xml 형식의 데이터를 생성하고 구문 분석하기 위한 코드 세부정보
1. 🎜>
형식의 데이터를 파싱하여 네트워크를 통해 전송합니다. XML의 형식은 스티커 메모 형태로 작성되어 표시되는데, 이는 아래 그림과 같이 한 눈에 명확하고 읽고 식별하기 쉽습니다.<xml 头> <student> <name>张三</name> <number>110001</number> <sex>male</sex> </student>XML의 생성Java 코드로 구현된 경우 이러한 문자열 형식은 StringBuilder를 사용하여 어셈블할 수 있습니다. StringBuilder sb = new StringBuilder();
//数据保存到文件 sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.append("<student>"); sb.append("<name>"); sb.append(name); sb.append("</name>"); sb.append("<number>"); sb.append(number); sb.append("</number>"); sb.append("<sex>"); sb.append(sex); sb.append("</sex>"); sb.append("</student>");위 코드는 xml 파일도 생성할 수 있지만, 예를 들어 문자 메시지 내용에 "5f557f62ae7ac7a14e0b1cb564790dfc" 기호가 포함되어 있으면 xml 구문 분석기가 올바른 구문 분석을 완료할 수 없습니다. 따라서 사용을 위한 전제조건은 데이터 내용에 특수문자가 없는지 확인하는 것입니다. 그리고 Android는 XML 데이터 생성을 위해 특별히 API를 제공합니다. 🎜>XML 구문 분석1. DOM 구문 분석은 모든 콘텐츠를 저장하는 객체 기반 API입니다. XML 파일을 문서 트리 형태로 메모리에 저장한 후 DOMAPI를 사용할 수 있도록 허용합니다. XML 트리를 탐색하여 필요한 데이터를 검색하면 파일이 트리 구조에 따라 노드로 조작될 수 있습니다. DOM은 전체 XML 파일을 문서 트리 형태로 메모리에 저장해야 하는데, 이는 많은 메모리를 소모하므로 Android에서 구문 분석할 때 이 방법을 사용해도 괜찮습니다. 2. SAX 구문 분석 은 XML 문서를 한 줄씩 스캔하고, 태그가 발견되면 구문 분석 프로세서를 트리거하고, 이벤트 처리를 사용하여 XML을 구문 분석합니다. 문서를 읽으면서 XML을 처리할 수 있으며, 문서가 로드될 때까지 기다릴 필요가 없으며, 문서 전체를 메모리에 로드할 필요가 없으므로 메모리를 점유하는 데 문제가 없으며 구문 분석이 가능합니다. 매우 큰 XML. 그러나 SAX 구문 분석은 XML 데이터를 읽는 데만 사용할 수 있으며 추가, 삭제 또는 수정할 수 없습니다. 3. PULL 구문 분석은 SAX 구문 분석과 유사하며 이벤트 처리를 기반으로 합니다. PULL 파서는 Android 애플리케이션과 JavaEE 프로그램 모두에서 사용할 수 있는 오픈 소스 Java 프로젝트입니다. Android에는 PULL 파서가 통합되어 있으므로 Android에서 가장 일반적으로 사용되는 구문 분석 방법은 PULL 구문 분석입니다. SAX와 PULL 구문 분석 비교: Pull 파서는 SAX파서와 유사하게 작동하며 둘 다 이벤트 중심입니다. 시작 요소 및 끝 요소 이벤트와 같은 유사한 이벤트를 제공하여 다음 요소를 입력하고 해당 이벤트를 트리거합니다. 이벤트는 숫자 코드로 전송되므로 스위치를 사용하여 관심 있는 이벤트를 처리할 수 있습니다. 요소가 구문 분석되기 시작하면 parser.nextText() 메서드를 호출하여 다음 Text 유형 요소의 값을 가져옵니다. SAX 파서는 처리를 위해 이벤트 프로세서에 이벤트를 자동으로 푸시하는 방식으로 작동하므로 이벤트 처리의 활성 종료를 제어할 수 없지만 Pull파서는 애플리케이션 코드를 적극적으로 허용하여 작동합니다. 파서에서 이벤트를 가져옵니다. 이벤트를 적극적으로 가져오기 때문에 필수 조건이 충족된 후에는 더 이상 이벤트를 가져오고 구문 분석을 종료할 수 없습니다. Android에서 PULL 메서드를 사용하여 XML 파일을 구문 분석하는 코드는 다음과 같습니다.
try {// 采用Android的api面向对象的生成xml文件. // 1.得到xml文件的序列化器 XmlSerializer serializer = Xml.newSerializer(); // 2.指定序列化器的一些初始参数 File file = new File(getFilesDir(), name +".xml"); FileOutputStream os = new FileOutputStream(file);serializer.setOutput(os, "utf-8"); // 3.写xml文件. serializer.startDocument("utf-8", true);//写开头serializer.startTag(null, "student");//开始标签 serializer.startTag(null,"name"); serializer.text(name);//文本标签 serializer.endTag(null,"name");//结束标签 serializer.startTag(null,"number"); serializer.text(number); serializer.endTag(null,"number"); serializer.startTag(null,"sex"); serializer.text(sex); serializer.endTag(null,"sex"); serializer.endTag(null,"student"); serializer.endDocument();//写结尾 os.close(); Toast.makeText(this,"保存数据成功", 0).show(); } catch (Exception e) {e.printStackTrace(); Toast.makeText(this,"保存数据失败", 0).show(); }
위 내용은 Xml 형식의 데이터를 생성하고 구문 분석하기 위한 코드 세부정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!