测试例子1
@SuppressWarnings("unchecked") public class TestDom4j { private static SAXReader reader; static{ reader = new SAXReader(); } /** * 得到文档的document * @param is * @return * @throws DocumentException */ public static Document getDocument( InputStream is ) throws DocumentException{ return reader.read(is ); } /** * 得到 xml文件的根元素 * @param doc * @return */ public static Element getRoot( Document doc){ return doc.getRootElement(); } /** * document 的遍历 ,通过递归的方式 * @param is * @return * @throws DocumentException */ public static List readXML( Element root ) throws DocumentException{ List list = new ArrayList(); list = getData(root); return list; } /** * 递归元素数据 * @param root * @return */ private static List getData(Element root) { // System.out.println( "节点总数:::"+root.nodeCount()); for(int i=0;i<root.nodeCount();i++){ Node node = root.node(i); if(node instanceof Element ){ getData((Element)node); // System.out.println("element node !"); }else{ System.out.println( node.getPath()+" == "+node.getText()+" "); } } return null; } /** 查找功能 * /books/book/@show xpath 遍历这个路径下的说有show属性 * /books/book 表示xpath 此路径下的所有元素 * @param node * @param xpath */ public static List getByXpath(Node node,String xpath){ List list = node.selectNodes(xpath); for(int i=0;i<list.size();i++){ // Attribute attr = (Attribute) list.get(i); // System.out.println( attr.getValue()); // System.out.println( list.get(i)); } return list; } public static Element addEle(Element parentNode, String childNodeName){ return parentNode.addElement(childNodeName); } /** * 向文件中写入 东西 测试 * @param filepath * @throws DocumentException * @throws IOException */ public static void writeFile(String filepath ) throws DocumentException, IOException { File f = new File(filepath); Document doc = reader.read(f); Element root = doc.getRootElement(); root.addElement("book").addAttribute("name", "我得书").addElement("title").addText("感觉不是很爽!!"); OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileWriter(new File(filepath)),format); writer.write(doc); writer.close(); } /** * 增删改的应用 * @throws DocumentException * @throws IOException */ public static void rem_add_update() throws DocumentException, IOException{ File f = new File("D://book.xml"); Document doc = reader.read(f); Element root = doc.getRootElement(); // List list = getByXpath(root, "/books/book/@show"); // for(int i=0;i<list.size();i++){ // Attribute attr = (Attribute) list.get(i); // String val = attr.getValue(); // if("none".equals( val )){ // attr.setValue("处理"); // } // } List list_ele = getByXpath(root, "/books/book"); System.out.println( list_ele.size()); for(int i=0;i<list_ele.size();i++){ Element ele = (Element) list_ele.get(i); ele.addAttribute("public", "5"); //添加属性 如果属性存在则修改属性 //删除文档中左后一个元素 if( i==(list_ele.size()-1) ) root.remove( ele ); } XMLWriter writer = new XMLWriter(new FileWriter(new File("D://book.xml")) ); writer.write(doc); writer.close(); } public static void main(String[] args) throws DocumentException, IOException { // InputStream is = TestDom4j.class.getClassLoader().getSystemResourceAsStream ("book.xml"); // Document doc = getDocument(is); // Element root = getRoot(doc); // readXML( root ); File f = new File("D://book.xml"); Document doc = reader.read(f); Element root = doc.getRootElement(); // List list = getByXpath(root, "/books/book/@show"); // for(int i=0;i<list.size();i++){ // Attribute attr = (Attribute) list.get(i); // String val = attr.getValue(); // if("none".equals( val )){ // attr.setValue("处理"); // } // } // getByXpath(root, "/books/book"); } }
------------ ---xml文件
<?xml version="1.0" encoding="UTF-8"?> <books> <book show="yes"> <title>此处的添加方法 是根元素books已经存在的情况下dom4j 练习21</title> </book> <book show="no"> <title>java 变成思想</title> </book> <book show="yes"> <title>java程序设计</title> </book> <book show="none"> <title>java程序设计</title> </book> </books>
测试的例子2
package dom4j; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class Dom4jDemo { /** * * @param fileName * 生成的xml文件名 * @param txtName * 包含的对账文件txt文件名 */ public void createXml(String fileName, String txtName) { Document document = DocumentHelper.createDocument(); Element root = document.addElement("root"); Element head = root.addElement("head"); Element type = head.addAttribute("type", "0"); Element code = head.addAttribute("code", "3003"); Element yhlb = head.addElement("yhlb"); yhlb.setText("01"); Element username = head.addElement("username"); username.setText("gsyh"); Element password = head.addElement("password"); password.setText("zheshimima"); Element body = root.addElement("body"); Element data = body.addElement("data"); Element dzwjm = data.addElement("dzwjm"); dzwjm.setText(txtName); try { // 写入文件 Writer fileWriter = new FileWriter(fileName); OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter xmlWriter = new XMLWriter(fileWriter, format); xmlWriter.write(document); xmlWriter.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } /** * * @param fileName * 要解析的文件名 * @return 解析xml文件得到的需要对账的文件名 */ public String parserXml(String fileName) { String findFileName = ""; File inputXml = new File(fileName); SAXReader saxReader = new SAXReader(); try { Document document = saxReader.read(inputXml); Element root = document.getRootElement(); for (Iterator i = root.elementIterator(); i.hasNext();) { Element head = (Element) i.next(); for (Iterator j = head.elementIterator(); j.hasNext();) { Element elem = (Element) j.next(); System.out.println(elem.getName() + ":" + elem.getText()); for (Iterator k = elem.elementIterator(); k.hasNext();) { Element last = (Element) k.next(); System.out.println(last.getName() + ":" + last.getText()); findFileName = last.getText(); } } } } catch (DocumentException e) { System.out.println(e.getMessage() + "hello"); } System.out.println("dom4j parserXml"); return findFileName; } /** * 测试main方法 * * @param args */ public static void main(String[] args) { Dom4jDemo demo = new Dom4jDemo(); // demo.createXml("D://request.xml", "test.txt"); demo.parserXml("d://request.xml"); } }
相关推荐
内容概要:本文全面介绍了Scratch编程语言,包括其历史、发展、特点、主要组件以及如何进行基本和进阶编程操作。通过具体示例,展示了如何利用代码块制作动画、游戏和音乐艺术作品,并介绍了物理模拟、网络编程和扩展库等功能。 适合人群:编程初学者、教育工作者、青少年学生及对编程感兴趣的各年龄段用户。 使用场景及目标:①帮助初学者理解编程的基本概念和逻辑;②提高学生的创造力、逻辑思维能力和问题解决能力;③引导用户通过实践掌握Scratch的基本和高级功能,制作个性化作品。 其他说明:除了基础教学,文章还提供了丰富的学习资源和社区支持,帮助用户进一步提升技能。
mmexport1734874094130.jpg
基于simulink的悬架仿真模型,有主动悬架被动悬架天棚控制半主动悬架 [1]基于pid控制的四自由度主被动悬架仿真模型 [2]基于模糊控制的二自由度仿真模型,对比pid控制对比被动控制,的比较说明 [3]基于天棚控制的二自由度悬架仿真 以上模型,说明文档齐全,仿真效果明显
内容概要:本文档是《组合数学答案-网络流传版.pdf》的内容,主要包含了排列组合的基础知识以及一些经典的组合数学题目。这些题目涵盖了从排列数计算、二项式定理的应用到容斥原理的实际应用等方面。通过对这些题目的解析,帮助读者加深对组合数学概念和技巧的理解。 适用人群:适合初学者和有一定基础的学习者。 使用场景及目标:可以在学习组合数学课程时作为练习题参考,也可以在复习考试或准备竞赛时使用,目的是提高解决组合数学问题的能力。 其他说明:文档中的题目覆盖了组合数学的基本知识点,适合逐步深入学习。每个题目都有详细的解答步骤,有助于读者掌握解题思路和方法。
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
操作系统实验 Ucore lab5
基于matlab开发的学生成绩管理系统GUI界面,可以实现学生成绩载入,显示,处理及查询。
老版本4.0固件,(.dav固件包),支持7700N-K4,7900N-K4等K51平台,升级后出现异常或变砖可使用此版本。请核对自己的机器信息,确认适用后在下载。
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
YOLO算法-杂草检测项目数据集-3970张图像带标签-杂草.zip
E008 库洛米(3页).zip
内容概要:本文详细阐述了基于西门子PLC的晶圆研磨机自动控制系统的设计与实现。该系统结合了传感器技术、电机驱动技术和人机界面技术,实现了晶圆研磨过程的高精度和高效率控制。文中详细介绍了控制系统的硬件选型与设计、软件编程与功能实现,通过实验测试和实际应用案例验证了系统的稳定性和可靠性。 适合人群:具备一定的自动化控制和机械设计基础的工程师、研究人员以及从事半导体制造的技术人员。 使用场景及目标:本研究为半导体制造企业提供了一种有效的自动化解决方案,旨在提高晶圆研磨的质量和生产效率,降低劳动强度和生产成本。系统适用于不同规格晶圆的研磨作业,可以实现高精度、高效率、自动化的晶圆研磨过程。 阅读建议:阅读本文时,重点关注晶圆研磨工艺流程和技术要求,控制系统的硬件和软件设计方法,以及实验测试和结果分析。这将有助于读者理解和掌握该自动控制系统的实现原理和应用价值。
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
深圳建筑安装公司“挖掘机安全操作规程”
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
大题解题方法等4个文件.zip
保障性安居工程考评内容和评价标准.docx
监督机构检查记录表.docx
该项目适合初学者进行学习,有效的掌握java、swing、mysql等技术的基础知识。资源包含源码、视频和文档 资源下载|如果你正在做毕业设计,需要源码和论文,各类课题都可以,私聊我。 商务合作|如果你是在校大学生,正好你又懂语言编程,或者你可以找来需要做毕设的伙伴,私聊我。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
218) Leverage - 创意机构与作品集 WordPress 主题 2.2.7.zip