基于Xpath的简单的学生信息管理系统

python写学生信息管理系统,python编辑学生信息系统 爬取网页数据用正则表达式的话,可以直接从网页源代码文本中匹配,但出错率较高,且熟悉正则表达式的使用也比较难,需要经常翻阅文档。实际爬取数据大多基于 HTML 结构的 Web 页面,网页节点较多,各种层级关系。可以考虑使用 Xpath 解析器、BeautifulSoup解析器、PyQuery CSS解析器抽取结构化数据,使用正则表达式抽取非结构化数据。Xpath:可在 XML 中查找信息;支持 HTML 的查找;通过元素和属性进行导航,查找效率很高。 阅读详情

基于Xpath所做的简单的学生信息管理系统,没有设计现实的窗体部分,较为交单粗暴。
首页在编写代码之前,首先需要引入两个myEclipse的插件包,加入到项目中,具体方法是,新建lib文件夹在java项目中,将压缩包复制粘贴进入lib文件夹,在创建到项目中去即可,最终结果如下图所示:
这里写图片描述
接下来开始java代码的编写:
1、首先在src下编写XML文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<student> 
  <stu> 
    <id>002</id>  
    <name>李四</name>  
    <age>20</age> 
  </stu>  
  <stu> 
    <id>003</id>  
    <name>王五</name>  
    <age>23</age> 
  </stu> 
</student>

写完后,接下来编写所需要的具体操作函数的代码StudentOper.java,具体代码如下:

package studentOper;

import java.io.FileOutputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import studentSource.Student;

public class StudentOper {

    //添加操作(003,王五,23)

    public static void addstu(Student student) throws Exception{

        SAXReader saxReader = new SAXReader();

        Document doc = saxReader.read("src/studentsrc.xml");

        Element root = doc.getRootElement();

        Element stu = root.addElement("stu");

        Element id = stu.addElement("id");
        Element name = stu.addElement("name");
        Element age = stu.addElement("age");

        id.setText(student.getId());
        name.setText(student.getName());
        age.setText(student.getAge());

        OutputFormat format = OutputFormat.createPrettyPrint();

        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/studentsrc.xml"), format);

        xmlWriter.write(doc);

        xmlWriter.close();


    }

    //删除id=001的学生
    public static void deleteStu(String id ) throws Exception
    {
        SAXReader saxReader = new SAXReader();

        Document doc = saxReader.read("src/studentsrc.xml");

        List<Node> list = doc.selectNodes("//id");

        for (Node node : list) {
            String nodeValue = node.getText();

            if (nodeValue.equals(id)) {
                Element stu = node.getParent();
                Element student = stu.getParent();
                student.remove(stu);


            }
        }
        OutputFormat format = OutputFormat.createPrettyPrint();

        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/studentsrc.xml"), format);

        xmlWriter.write(doc);

        xmlWriter.close();
    }


    //查找id=002的学生信息
    public static Student searchstu(String id) throws Exception
    {
        Student student = new Student();

        SAXReader saxReader = new SAXReader();

        Document doc = saxReader.read("src/studentsrc.xml");

        List<Node> list = doc.selectNodes("//id");

        for (Node node : list) {
            String nodeValue = node.getText();

            if (nodeValue.equals(id)) {

                Element stu = node.getParent();

                String nameValue = stu.element("name").getText();
                String ageValue = stu.element("age").getText();

                student.setId(id);
                student.setName(nameValue);
                student.setAge(ageValue);

            }

        }
        return student;

    }

}

而我们在创建这个代码是,发现因为student的属性参数较多,于是在创建一个student类来存储这些属性,代码如下:

package studentSource;

public class Student {
    private String id;
    private String name;
    private String age;
    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 String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
    }


}

接下来,编写studentmain代码。调用这些功能函数即可:

package student;

import studentOper.StudentOper;
import studentSource.Student;

public class StudentMain {

    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        //添加操作(003,王五,23)
        //addStudent();
        //删除id=001的学生
        //deleteStu();
        //查找id=002的学生信息
        searchStu();

    }

    private static void searchStu() throws Exception {
        // TODO Auto-generated method stub
        Student student = StudentOper.searchstu("002");
        System.out.println(student.toString());

    }

    private static void deleteStu() throws Exception {
        // TODO Auto-generated method stub
        StudentOper.deleteStu("001");
    }

    private static void addStudent() throws Exception {
        // TODO Auto-generated method stub
        Student stu = new Student();
        stu.setId("003");
        stu.setName("王五");
        stu.setAge("23");
        StudentOper.addstu(stu);
    }

}
【水文】calico-node 启动失败 Init:CrashLoopBackOff Defaulted container "calico-node" out of: calico-node, upgrade-ipam (init), install-cni (init), mount-bpffs (init) Error from server (BadRequest): container "calico-node" in pod "calico-node-4j7td" is waiting to start: PodInitializing 阅读详情

相关推荐

arduino esp8266_Arduino传感器教程 第22章ESP8266 控制 5V 继电器

ESP8266控制5V继电器目录一、NodeMCU二、工作原理本文将使用亚马逊 AlexaEcho 和 ESP8266 控制 5V 继电器。NodeMCUNodeMCU 是一个开源的 IoT 物联网硬件开发板,由于它支持 WIFI 功能且使用方法十分类似 Arduino 开发板,所以近些年获得了越来越多来自全世界的创客朋友们的青睐。NodeMCU 尺寸与 Arduino Nano 类似。...

weixin_39611722的博客 3455

Dom4j和XPATH操作xml(模拟学生管理系统,实现增删改查)

首先因为经常使用创建document对象和进行回写操作,所以将代码放到一起写一个小小的工具类,这样我们使用时就可以直接调方法了。 工具类 import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; imp...

涂墨的博客 399

USB接口ESD保护电路:深度剖析与选型建议

USB接口在热插拔和频繁使用中极易遭遇静电放电(ESD)冲击,导致芯片损坏或通信异常。本文结合实际电路设计经验,详解TVS二极管、集成ESD防护器件等方案在USB接口上的应用要点,重点分析钳位电压、结电容、IEC 61000-4-2等级等关键参数对信号完整性与防护效果的影响,助你为USB接口匹配高可靠、低干扰的ESD保护方案。

weixin_36289813的博客 510

基于XML和Xpath的简易数据管理系统

一、目标 用xml和Xapth做一个简单的数据管理系统,对数据的进行简单的增、删、改、查询操作。如做一个简单的班级学生信息管理系统: 二、环境及开发工具 环境:Java 工具:Eclipse 开发包:如图 三、原理 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异...

weixin_30747253的博客 240

【Dify】PPT生成工具应用

本文介绍了一款自动化PPT生成工具,通过智能接口将文本内容高效转化为结构化演示文档。该系统采用三阶段工作流(内容输入、HTTP请求上传、文件输出),无需复杂操作即可生成专业PPT。工具适用于教学课件、产品发布、企业培训等场景,能显著提升内容表达效率,特别适合初学者快速制作演示材料。文章详细说明了核心节点、应用场景及开发资源,为文本到PPT的自动化转换提供了实用解决方案。

Mr数据杨 1216

QT 实现QStackedWidget切换页面右移动画

首先截取当前界面的图片,渲染到一个QLabel上,然后设置QPropertyAnimation动画,动画的作用对象就是这个QLabel,不断的改变geometry;当动画结束的时候,隐藏并释放这个QLabel。以下是一个QStackedWidget,放了两个QPushButton在上面,点击切换不同的界面。为了方便查看动画特效,设置了每个界面的背景图片。

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 882

DOM解析XML文档实例之学生管理系统

/** *@ author StormMaybin *@ date 2016-10-06 */ 生命不息,奋斗不止! 需求分析: 用XML文档来保存学生信息,通过对XML文档的增删改,来实现管理学生信息的功能。主体结构学生类package com.stormma.domain;public class Student { private String idCard; priva

StormMaybin的博客 2146

YOLOv11模型改进全攻略:利用轻量化模块实现精度与速度双跃升

如果你在实操中遇到模块替换导致的精度骤降或部署报错,不妨尝试调整轻量化模块的替换比例,或针对性地保留关键层的原始结构。记住,轻量化的核心是“在精度损失可接受的范围内最大化提升效率”,只要结合业务场景灵活取舍,你也能让YOLOv11在资源受限的环境中大放异彩。接下来,我们从模块选型到代码集成,一步步带你打造“轻量且能打”的YOLOv11,真正帮你解决工业落地中的效率与精度痛点。训练过程中关注模型的mAP和推理速度,若精度下降过多,可调整模块替换的比例(如仅替换Backbone的部分卷积层)。

m0_64661770的博客 502

【XML】使用dom4j支持XPATH

1.XPATH简介 1.可以直接取到某个元素 2. 第一种方式: /AAA/DDD/BBB 表示一层一层的,AAA下面的DDD下面的BBB 第二种方式: //BBB 表示只要名称是BBB都可以得到 第三种方式: /* 表示所有元素 第四种方式: BBB[1] 表示第一个BBB元素 BBB[last()] 表示最后一个BBB元素 第五种方式: //BBB[@id]表示只要BBB元素上面...

你今天真好看呀 442

告别手动查文献!用Claude Haiku 4.5一键帮你检索+插入参考文献,科研效率直接翻倍(附实操演示+AI提示词)

以下是我的论文段落内容与参考文献列表。以下是我论文段落内容【粘贴论文段落】,请根据每个段落的主题自动检索近五年内的高相关学术文献(以真实DOI或可查询来源为准),要求:1)为每个段落匹配2–3条最相关的文献;另一种是你没有现成的文献列表,需要AI能够帮你检索,筛选输出合适的参考文献列表,并将其正确插入至段落中。选择完成后,先让它检索文献,我设计了一段AI提示词,让Haiku 4.5模型围绕研究主题,给我在各大数据库搜索近五年的文献,并以表格的形式输出文献的核心信息,确保DOI号能直接跳转到原文。

qq_64378896的博客 407

Spring Boot Jar包加密实战:用ClassFinal与Jasypt打造代码安全堡垒

Spring Boot代码加密与配置保护方案 针对Spring Boot项目源码和配置易被反编译的风险,本文提出ClassFinal字节码加密+Jasypt配置加密的组合方案。ClassFinal通过Maven插件对核心代码加密,运行时需JavaAgent加载,反编译后仅保留空方法体;Jasypt则采用强加密算法保护敏感配置。方案优势包括: 双重保护:ClassFinal加密业务逻辑,Jasypt加密数据库密码等配置 灵活部署:支持密码启动、机器绑定等安全策略 平滑集成:兼容Spring生态,动态解密结合配

墨夶的博客 1092

XPath概述 及 dom4j支持xpath的操作

XPath概述及实例 1、什么是XPath 2、使用dom4j支持xpath具体操作(****这个很重要******) 3、学生管理系统的代码实现(*********) ========================================================== 1、什么是XPath? XPath即为XML路径语言(XML Path Lan...

weixin_42472048的博客 377

Carla运行显示The following component(s) are required to run this program:DirectX Runtime |nvapi64.dll没有被

Carla运行显示The following component(s) are required to run this p 参考: 【1】EPIC 启动游戏提示The following component(s) are required to run this program:... - 『悬赏问答区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cnhttps://www.52pojie.cn/thread-1485651-1-1.html ...

anananajiushiwo的博客 5万+

Python入门学习记录03--用户管理系统+Xpath

Python入门学习记录03–用户管理系统+Xpath 文章目录Python入门学习记录03--用户管理系统+Xpath1.完成用户管理系统2.使用urllib爬取三个不同的网页并且保存到本地3.熟悉Xpath语法,并且自己去找几个网页利用Xpath语法获取网页元素,并且将获取到的截图和Xpath语法保存提交(1)Xpath语法自学笔记(2)Xpath查找实战(此处借鉴别的博客) 1.完成用户管理系统 #实现五个基本功能 print(""" *********************************

ZYP 329

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Xml—dom4j解析—学生信息管理系统

<br />Xml文档—exam.xml<br /><?xml version="1.0" encoding="UTF-8"?><br /><exam> <br />  <student examid="111" idcard="111123123"> <br />    <name>张三</name>  <br />    <location>沈阳</location>  <br />    <grade>89</grade> <br />  </student>  <br />  <student ex

Central-Perk的专栏 3587

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

传智播客 xml&dom_sax_dom4j编程2

今天是xml&dom_sax_dom4j课程的第二天,也是dom4j解析xml文档学习的最后一天。今天的上午课程主要针对dom4j的xpath查询展开。Xpath查询语法主要有:1. /students/student通过绝对路径获取students根节点下所有的直接子节点student元素对象;2.students/student 通过相对路径获取students根节点下所有的直

371

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JavaWeb笔记-06-jdom4j实现Xpath的的操作 实现简单的学生管理操作(xml文件存储)

1、dom4j支持Xpath的操作形式 可以直接取到某个元素 形式一:aaa/bbb/ccc 表示层级关系 aaa下的bbb下的ccc 形式二://aaa/bbb 表示只要是aaa下的 ,所有的bbb 形式三: /* 所有元素 形式四: BBB[1] : 表示第一个BBB元素 BBB[last] : 最后一个BBB 形式五: //BBB[@id]...

一万年行不行的博客 252

xml简单实现学生管理系统!看不懂来打我!!!

目录一:项目分析二:实现步骤1.Dom4j工具类2.创建xml文件:3.Service层4.测试方法 一:项目分析 学生管理系统: 通过利用xml文件的存储功能来存储学生信息。再用dom4j解析器来对xml文件进行操作,也会用到一点xpath的东西。 二:实现步骤 1.Dom4j工具类 用来简化对xml的操作: import java.io.FileOutputStream; import jav...

池鱼 2422

xml+dom4j+xpath学生管理系统

<?xml version="1.0" encoding="UTF-8"?> <student> <stu> <name>张三</name> <age>16</age> <sex>男</sex> </stu&g...

weixin_30536513的博客 138

java xml 管理系统_Java语言制作基于XML和Xpath的简易数据管理系统

类型:下载工具大小:828KB语言:中文 评分:7.5标签:立即下载一、目标用xml和Xapth做一个简单的数据管理系统,对数据的进行简单的增、删、改、查询操作。如做一个简单的班级学生信息管理系统:二、环境及开发工具环境:Java工具:EcliPSe开发包:如图三、原理dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML A...

weixin_32074113的博客 315

[学习笔记]XML解析之DOM4J

DOM4J XML解析 1. 常用API 解析器:SAXReader文档对象:Document元素对象:Element文档帮助类(用于创建节点):DocumentHelper文档对象子类:DefaultElement文档对象子类:BaseElement格式化输出对象:OutputFormat保存文件对象:XMLWriter 2. 解析XML获取文档对象

Jacob专栏 1890
上一篇: Dom4j对XML文档的增删改查操作
下一篇: 使用java代码生成图片验证码
CoderJu
博客等级 码龄11年 11粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值