[제목]: XML 파일을 기반으로 학생 점수 확인, 학생 추가, 학생 삭제 등이 가능한 간단한 콘솔 프로그램을 구현합니다.
xml 파일은 src/com/dom/exercise 폴더에 저장되며 형식은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8" standalone="no"?><students> <student sid="001"> <name>小明</name> <course> <java>90</java> <oracle>90</oracle> <vb>93</vb> </course> </student> <student sid="002"> <name>小李</name> <course> <java>78</java> <oracle>86</oracle> <vb>98</vb> </course> </student> <student sid="003"> <name>小王</name> <course> <java>89</java> <oracle>83</oracle> <vb>95</vb> </course> </student></students>
가장 간단한 프로그램이라고 할 수 있습니다. , 약간 복잡한 것은 XML 파일을 기반으로 구현해야하므로 여기서는 DOM 구문 분석을 사용해야 합니다. SAX 구문 분석은 XML 파일만 읽을 수 있고 업데이트할 수 없기 때문에 SAX를 사용할 수 없습니다.
1. 먼저 다음과 같이 StudentBean을 작성합니다.
package com.dom.exercise;public class Student { private String id = null; private String name = null; private int score_java; private int score_oracle; private int score_vb; public Student() { } public Student(String id, String name, int score_java, int score_oracle, int score_vb) { super(); this.id = id; this.name = name; this.score_java = score_java; this.score_oracle = score_oracle; this.score_vb = score_vb; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore_java() { return score_java; } public void setScore_java(int score_java) { this.score_java = score_java; } public int getScore_oracle() { return score_oracle; } public void setScore_oracle(int score_oracle) { this.score_oracle = score_oracle; } public int getScore_vb() { return score_vb; } public void setScore_vb(int score_vb) { this.score_vb = score_vb; } }
2. XML 문서를 수행하는 가장 중요한 StudentService 클래스를 작성합니다. 처리 다양한 작업
import java.util.ArrayList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class StudentService { private static Document document = null; private static String path = "src/com/dom/exercise/student.xml"; static{ try{ DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); document = documentBuilder.parse(path); }catch(Exception e){ System.out.println("初始化失败..."); e.printStackTrace(); } } /** * 获取所有学生信息 * @return */ public static ArrayList<Student> readAll(){ ArrayList<Student> array = new ArrayList<Student>(); NodeList students = document.getElementsByTagName("student"); for (int i = 0; i < students.getLength(); i++) { Element node_student = (Element)students.item(i); String id = node_student.getAttribute("sid"); Node node_name = node_student.getElementsByTagName("name").item(0); String name = node_name.getTextContent(); Element node_course = (Element)node_student.getElementsByTagName("course").item(0); Node course_java = node_course.getElementsByTagName("java").item(0); Node course_oracle = node_course.getElementsByTagName("oracle").item(0); Node course_vb = node_course.getElementsByTagName("vb").item(0); int score_java = Integer.parseInt(course_java.getTextContent()); int score_oracle = Integer.parseInt(course_oracle.getTextContent()); int score_vb = Integer.parseInt(course_vb.getTextContent()); Student student = new Student(id, name, score_java, score_oracle, score_vb); array.add(student); } return array; } /** * 根据ID获取一个学生的信息 * @param sid * @return */ public static Student getStudentById(String sid){ NodeList students = document.getElementsByTagName("student"); for (int i = 0; i < students.getLength(); i++) { Element node_student = (Element)students.item(i); String id = node_student.getAttribute("sid"); if(!id.equals(sid)){ continue; } Node node_name = node_student.getElementsByTagName("name").item(0); String name = node_name.getTextContent(); Element node_course = (Element)node_student.getElementsByTagName("course").item(0); Node course_java = node_course.getElementsByTagName("java").item(0); Node course_oracle = node_course.getElementsByTagName("oracle").item(0); Node course_vb = node_course.getElementsByTagName("vb").item(0); int score_java = Integer.parseInt(course_java.getTextContent()); int score_oracle = Integer.parseInt(course_oracle.getTextContent()); int score_vb = Integer.parseInt(course_vb.getTextContent()); Student student = new Student(id, name, score_java, score_oracle, score_vb); return student; } return null; } /** * 添加学生 * @param student */ public static void addStudent(Student student){ Element stu = document.createElement("student"); stu.setAttribute("sid", student.getId()); Element name = document.createElement("name"); name.setTextContent(student.getName()); Element course = document.createElement("course"); Element score_java = document.createElement("java"); Element score_oracle = document.createElement("oracle"); Element score_vb = document.createElement("vb"); score_java.setTextContent(String.valueOf(student.getScore_java())); score_oracle.setTextContent(String.valueOf(student.getScore_oracle())); score_vb.setTextContent(String.valueOf(student.getScore_vb())); course.appendChild(score_java); course.appendChild(score_oracle); course.appendChild(score_vb); stu.appendChild(name); stu.appendChild(course); document.getDocumentElement().appendChild(stu); update(document, path); } /** * 根据ID删除一个学生 * @param sid */ public static void deleteStudentById(String sid){ NodeList students = document.getElementsByTagName("student"); for (int i = 0; i < students.getLength(); i++) { Element student = (Element)students.item(i); if(student.getAttribute("sid").equals(sid)){ student.getParentNode().removeChild(student); } } update(document,path); } /** * 更新到文件 * @param document * @param path */ public static void update(Document document,String path){ try{ TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.transform(new DOMSource(document), new StreamResult(new File(path))); }catch(Exception e){ e.printStackTrace(); } } }
3. 간단한 인터페이스를 구현하기 위한 기본 테스트 프로그램
작성:
package com.dom.exercise; import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean flag = true; while(flag){ // 显示操作界面 System.console(); System.out.println("*********************操作界面*********************"); System.out.println("\t\t1.查询所有学生的成绩"); System.out.println("\t\t2.按照ID查询学生成绩 "); System.out.println("\t\t3.添加一个学生"); System.out.println("\t\t4.按照ID删除一个学生"); System.out.println("\t\t0.退出系统"); System.out.println("************************************************"); // 获取用户的操作 String operate = scanner.next(); if ("1".equals(operate)) { ArrayList<Student> students = StudentService.readAll(); System.out.println("所有的学生信息如下:"); System.out.println("Name\tID\tJava\tOracle\tVB"); for (Student student : students) { System.out.println(student.getName() + "\t" + student.getId() + "\t" + student.getScore_java() + "\t" + student.getScore_oracle() + "\t" + student.getScore_vb()); } }else if("2".equals(operate)){ System.out.println("请输入要查询的学生ID:"); String sid = scanner.next(); Student student = StudentService.getStudentById(sid); System.out.println("学号为"+sid+"的学生的信息如下:"); System.out.println("Name\tID\tJava\tOracle\tVB"); System.out.println(student.getName() + "\t" + student.getId() + "\t" + student.getScore_java() + "\t" + student.getScore_oracle() + "\t" + student.getScore_vb()); }else if("3".equals(operate)){ System.out.println("请输入要添加的学生ID:"); String sid = scanner.next(); System.out.println("请输入要添加的学生姓名:"); String name = scanner.next(); System.out.println("请输入要添加的学生Java成绩:"); int score_java = Integer.parseInt(scanner.next()); System.out.println("请输入要添加的学生Oracle成绩:"); int score_oracle = Integer.parseInt(scanner.next()); System.out.println("请输入要添加的学生VB成绩:"); int score_vb = Integer.parseInt(scanner.next()); Student student = new Student(sid, name, score_java, score_oracle, score_vb); StudentService.addStudent(student); System.out.println("添加成功!"); }else if("4".equals(operate)){ System.out.println("请输入要删除的学生的ID:"); String sid = scanner.next(); StudentService.deleteStudentById(sid); System.out.println("删除成功!"); } System.out.println("是否继续?(Y/N)"); flag = scanner.next().trim().toLowerCase().equals("y")?true:false; } scanner.close(); } }
4. 결과 실행
문제의 핵심은 여전히 DOM에서 XML을 구문 분석하고 XML에서 크루드 작업을 수행하는 것입니다.
[제목]: XML 파일을 기반으로 학생 점수 확인, 학생 추가, 학생 삭제 등이 가능한 간단한 콘솔 프로그램을 구현합니다.
xml 파일은 src/com/dom/exercise 폴더에 저장됩니다. 형식은
<?xml version="1.0" encoding="utf-8" standalone="no"?><students> <student sid="001"> <name>小明</name> <course> <java>90</java> <oracle>90</oracle> <vb>93</vb> </course> </student> <student sid="002"> <name>小李</name> <course> <java>78</java> <oracle>86</oracle> <vb>98</vb> </course> </student> <student sid="003"> <name>小王</name> <course> <java>89</java> <oracle>83</oracle> <vb>95</vb> </course> </student></students>
가장 간단한 프로그램이라고 할 수 있습니다. 더 복잡합니다. XML 파일을 기반으로 구현되므로 여기서는 DOM 구문 분석을 사용해야 합니다. SAX 구문 분석은 XML 파일만 읽을 수 있고 업데이트할 수 없기 때문입니다.
1. 먼저 다음과 같이 StudentBean을 작성합니다.
package com.dom.exercise;public class Student { private String id = null; private String name = null; private int score_java; private int score_oracle; private int score_vb; public Student() { } public Student(String id, String name, int score_java, int score_oracle, int score_vb) { super(); this.id = id; this.name = name; this.score_java = score_java; this.score_oracle = score_oracle; this.score_vb = score_vb; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore_java() { return score_java; } public void setScore_java(int score_java) { this.score_java = score_java; } public int getScore_oracle() { return score_oracle; } public void setScore_oracle(int score_oracle) { this.score_oracle = score_oracle; } public int getScore_vb() { return score_vb; } public void setScore_vb(int score_vb) { this.score_vb = score_vb; } }
2. XML 문서를 수행하는 가장 중요한 StudentService 클래스를 작성합니다. 처리 다양한 작업
import java.util.ArrayList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class StudentService { private static Document document = null; private static String path = "src/com/dom/exercise/student.xml"; static{ try{ DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); document = documentBuilder.parse(path); }catch(Exception e){ System.out.println("初始化失败..."); e.printStackTrace(); } } /** * 获取所有学生信息 * @return */ public static ArrayList<Student> readAll(){ ArrayList<Student> array = new ArrayList<Student>(); NodeList students = document.getElementsByTagName("student"); for (int i = 0; i < students.getLength(); i++) { Element node_student = (Element)students.item(i); String id = node_student.getAttribute("sid"); Node node_name = node_student.getElementsByTagName("name").item(0); String name = node_name.getTextContent(); Element node_course = (Element)node_student.getElementsByTagName("course").item(0); Node course_java = node_course.getElementsByTagName("java").item(0); Node course_oracle = node_course.getElementsByTagName("oracle").item(0); Node course_vb = node_course.getElementsByTagName("vb").item(0); int score_java = Integer.parseInt(course_java.getTextContent()); int score_oracle = Integer.parseInt(course_oracle.getTextContent()); int score_vb = Integer.parseInt(course_vb.getTextContent()); Student student = new Student(id, name, score_java, score_oracle, score_vb); array.add(student); } return array; } /** * 根据ID获取一个学生的信息 * @param sid * @return */ public static Student getStudentById(String sid){ NodeList students = document.getElementsByTagName("student"); for (int i = 0; i < students.getLength(); i++) { Element node_student = (Element)students.item(i); String id = node_student.getAttribute("sid"); if(!id.equals(sid)){ continue; } Node node_name = node_student.getElementsByTagName("name").item(0); String name = node_name.getTextContent(); Element node_course = (Element)node_student.getElementsByTagName("course").item(0); Node course_java = node_course.getElementsByTagName("java").item(0); Node course_oracle = node_course.getElementsByTagName("oracle").item(0); Node course_vb = node_course.getElementsByTagName("vb").item(0); int score_java = Integer.parseInt(course_java.getTextContent()); int score_oracle = Integer.parseInt(course_oracle.getTextContent()); int score_vb = Integer.parseInt(course_vb.getTextContent()); Student student = new Student(id, name, score_java, score_oracle, score_vb); return student; } return null; } /** * 添加学生 * @param student */ public static void addStudent(Student student){ Element stu = document.createElement("student"); stu.setAttribute("sid", student.getId()); Element name = document.createElement("name"); name.setTextContent(student.getName()); Element course = document.createElement("course"); Element score_java = document.createElement("java"); Element score_oracle = document.createElement("oracle"); Element score_vb = document.createElement("vb"); score_java.setTextContent(String.valueOf(student.getScore_java())); score_oracle.setTextContent(String.valueOf(student.getScore_oracle())); score_vb.setTextContent(String.valueOf(student.getScore_vb())); course.appendChild(score_java); course.appendChild(score_oracle); course.appendChild(score_vb); stu.appendChild(name); stu.appendChild(course); document.getDocumentElement().appendChild(stu); update(document, path); } /** * 根据ID删除一个学生 * @param sid */ public static void deleteStudentById(String sid){ NodeList students = document.getElementsByTagName("student"); for (int i = 0; i < students.getLength(); i++) { Element student = (Element)students.item(i); if(student.getAttribute("sid").equals(sid)){ student.getParentNode().removeChild(student); } } update(document,path); } /** * 更新到文件 * @param document * @param path */ public static void update(Document document,String path){ try{ TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.transform(new DOMSource(document), new StreamResult(new File(path))); }catch(Exception e){ e.printStackTrace(); } } }
3. 간단한 인터페이스를 구현하기 위한 기본 테스트 프로그램
작성:
package com.dom.exercise;import java.util.ArrayList;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean flag = true; while(flag){ // 显示操作界面 System.console(); System.out.println("*********************操作界面*********************"); System.out.println("\t\t1.查询所有学生的成绩"); System.out.println("\t\t2.按照ID查询学生成绩 "); System.out.println("\t\t3.添加一个学生"); System.out.println("\t\t4.按照ID删除一个学生"); System.out.println("\t\t0.退出系统"); System.out.println("************************************************"); // 获取用户的操作 String operate = scanner.next(); if ("1".equals(operate)) { ArrayList<Student> students = StudentService.readAll(); System.out.println("所有的学生信息如下:"); System.out.println("Name\tID\tJava\tOracle\tVB"); for (Student student : students) { System.out.println(student.getName() + "\t" + student.getId() + "\t" + student.getScore_java() + "\t" + student.getScore_oracle() + "\t" + student.getScore_vb()); } }else if("2".equals(operate)){ System.out.println("请输入要查询的学生ID:"); String sid = scanner.next(); Student student = StudentService.getStudentById(sid); System.out.println("学号为"+sid+"的学生的信息如下:"); System.out.println("Name\tID\tJava\tOracle\tVB"); System.out.println(student.getName() + "\t" + student.getId() + "\t" + student.getScore_java() + "\t" + student.getScore_oracle() + "\t" + student.getScore_vb()); }else if("3".equals(operate)){ System.out.println("请输入要添加的学生ID:"); String sid = scanner.next(); System.out.println("请输入要添加的学生姓名:"); String name = scanner.next(); System.out.println("请输入要添加的学生Java成绩:"); int score_java = Integer.parseInt(scanner.next()); System.out.println("请输入要添加的学生Oracle成绩:"); int score_oracle = Integer.parseInt(scanner.next()); System.out.println("请输入要添加的学生VB成绩:"); int score_vb = Integer.parseInt(scanner.next()); Student student = new Student(sid, name, score_java, score_oracle, score_vb); StudentService.addStudent(student); System.out.println("添加成功!"); }else if("4".equals(operate)){ System.out.println("请输入要删除的学生的ID:"); String sid = scanner.next(); StudentService.deleteStudentById(sid); System.out.println("删除成功!"); } System.out.println("是否继续?(Y/N)"); flag = scanner.next().trim().toLowerCase().equals("y")?true:false; } scanner.close(); } }
4. 결과 실행
문제의 핵심은 여전히 DOM에서 XML을 구문 분석하고 XML에서 크루드 작업을 수행하는 것입니다.
위 내용은 XML-DOM 파싱 사례 내용이며, 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

RSSFEEDSAREXMLDOCUMentsORMUSSEDFORCONTENGAGNEGANGANDANDAND 및 DISTIBLITION.TOTRANSFORMTHEMINTOREADBECONCONTENT : 1) PARSETHEXMLUSINGLIBRARIES LIKEFEDPARSERINPYTHON.2) HORDLEDIFFERENTSSSSSSONS 및 POTELINGEPARSINGERRORS.3) 변형 된 정보 형식 FrrONTLIKETLIKET

JSONFEED는 JSON 기반 RSS 대안으로 단순성과 사용 편의성을 갖는 장점이 있습니다. 1) JSONFEED는 JSON 형식을 사용하여 생성 및 구문 분석이 쉽습니다. 2) 동적 생성을 지원하며 현대 웹 개발에 적합합니다. 3) JSONFEED를 사용하면 컨텐츠 관리 효율성과 사용자 경험이 향상 될 수 있습니다.

RSSFeeds를 구축, 검증 및 게시하는 방법은 무엇입니까? 1. 빌드 : Python 스크립트를 사용하여 제목, 링크, 설명 및 출시 날짜를 포함하여 RSSFEED를 생성합니다. 2. 확인 : FeedValidator.org 또는 Python 스크립트를 사용하여 RSSFEED가 RSS2.0 표준을 준수하는지 확인하십시오. 3. 게시 : RSS 파일을 서버에 업로드하거나 Flask를 사용하여 RSSFEED를 동적으로 생성 및 게시합니다. 이 단계를 통해 컨텐츠를 효과적으로 관리하고 공유 할 수 있습니다.

XML/RSSFEEDS의 보안을 보장하는 방법에는 다음이 포함됩니다. 1. 데이터 검증, 2. 암호화 된 전송, 3. 액세스 제어, 4. 로그 및 모니터링. 이러한 측정은 네트워크 보안 프로토콜, 데이터 암호화 알고리즘 및 액세스 제어 메커니즘을 통해 데이터의 무결성과 기밀성을 보호합니다.

XML은 데이터를 저장하고 전송하는 데 사용되는 마크 업 언어이며 RSS는 자주 업데이트되는 컨텐츠를 게시하는 데 사용되는 XML 기반 형식입니다. 1) XML은 태그 및 속성을 통해 데이터 구조를 설명합니다. 2) RSS는 특정 태그 게시 및 구독 컨텐츠를 정의하고 3) XML을 생성하고 Python의 xml.etree.elementtree Module, 4) XPPARSERPERS, 5) FEEDPARSER LIBRATION을 포함 할 수 있습니다. SAX 파서로 대형 XML 파일을 처리하면 성능을 최적화 할 수 있습니다.

XML은 데이터 저장 및 교환을위한 마크 업 언어이며 RSS는 업데이트 된 컨텐츠를 게시하기위한 XML 기반 형식입니다. 1. XML은 데이터 교환 및 스토리지에 적합한 데이터 구조를 정의합니다. 2.RSS는 콘텐츠 구독에 사용되며 구문 분석시 특수 라이브러리를 사용합니다. 3. XML을 구문 분석 할 때 DOM 또는 색소폰을 사용할 수 있습니다. XML 및 RSS를 생성 할 때는 요소 및 속성을 올바르게 설정해야합니다.

Python을 사용하여 XML/RSS에서 JSON으로 변환하십시오. 1) 소스 데이터, 2) 추출 필드, 3) JSON으로 변환, 4) 출력 JSON. XML.etree.elementtree 및 FeedParser 라이브러리를 사용하여 XML/RSS를 구문 분석하고 JSON 라이브러리를 사용하여 JSON 데이터를 생성하십시오.

XML/RSS 및 RESTAPI는 현대 네트워크 개발에서 함께 작동합니다. 이 두 가지를 사용하면 효율적인 컨텐츠 관리 및 동적 업데이트를 얻을 수 있습니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

WebStorm Mac 버전
유용한 JavaScript 개발 도구

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

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
