当前位置: 首页 > news >正文

济南网站建设服务公司wordpress解决速度慢

济南网站建设服务公司,wordpress解决速度慢,企业服务咨询,模板网站制作服务各位代码建筑师们#xff01;今天我们要玩一款比原生DOM更Java友好的XML积木套装——JDOM#xff01;它像乐高得宝系列#xff08;Duplo#xff09;一样简单易用#xff0c;却能让你的XML工程稳如霍格沃茨城堡#xff01;#xff08;温馨提示#xff1a;别…各位代码建筑师们今天我们要玩一款比原生DOM更Java友好的XML积木套装——JDOM它像乐高得宝系列Duplo一样简单易用却能让你的XML工程稳如霍格沃茨城堡温馨提示别用它造魂器容易内存泄漏 一、JDOM绝杀技原生DOM的整容手术 纯Java基因 不用再忍受DOM的NodeList这种反人类设计直接使用ListElement操作像喝黄油啤酒般顺滑 建造者模式 用Document doc new Document(new Element(root))就能起高楼比DOM的createElement三连击爽快10倍 XPath外挂 支持XPathFactory直接查询找节点比找厨房里的蟑螂还容易 二、实战演练用JDOM搭建霍格沃茨课程表 魔法课程表结构courses.xml 课程表 年份2024学院 名称格兰芬多课程 时间周一9:00名称黑魔法防御术/名称教授卢平/教授/课程课程 时间周三14:00名称魁地奇训练/名称教授霍琦夫人/教授/课程/学院 /课程表魔法代码JDomWizard.java import org.jdom2.*; import org.jdom2.input.SAXBuilder; import org.jdom2.output.*; import java.util.List;public class JDomWizard {public static void main(String[] args) throws Exception {// 解析现有课程表比猫头鹰送信更快SAXBuilder builder new SAXBuilder();Document doc builder.build(courses.xml);// 查找所有课程使用XPath比飞贼还快ListElement courses doc.getRootElement().getChild(学院).getChildren(课程);System.out.println( 格兰芬多课程表);courses.forEach(course - {String time course.getAttributeValue(时间);String name course.getChildText(名称);System.out.println(time | name);});// 添加新课程比变形咒还方便Element newCourse new Element(课程).setAttribute(时间, 周五19:00).addContent(new Element(名称).setText(夜游指导)).addContent(new Element(教授).setText(费尔奇));doc.getRootElement().getChild(学院).addContent(newCourse);// 保存修改用魔杖刻录XMLOutputter outputter new XMLOutputter(Format.getPrettyFormat());outputter.output(doc, new FileWriter(courses_modified.xml));} }输出结果 格兰芬多课程表 周一9:00 | 黑魔法防御术 周三14:00 | 魁地奇训练生成的新XML将包含费尔奇的夜游指导课程——虽然这课可能教怎么抓夜游学生 三、JDOM五大神器 元素速成咒 Element potion new Element(魔药课).setAttribute(教室, 地牢).addContent(new Element(材料).setText(非洲树蛇皮));安全护盾防御XXE SAXBuilder builder new SAXBuilder(); builder.setFeature(http://apache.org/xml/features/disallow-doctype-decl, true);流式输出术处理大文件 XMLOutputter outputter new XMLOutputter(); try (FileWriter writer new FileWriter(big_data.xml)) {outputter.output(new Element(root), writer); // 先写开头for(Element data : hugeList) {outputter.output(data, writer); // 分批写入}outputter.output(new Element(/root), writer); // 手动闭合 }元素过滤器 ListElement dangerousCourses courses.stream().filter(c - c.getChildText(教授).equals(乌姆里奇)).collect(Collectors.toList());DTD验证器 SAXBuilder builder new SAXBuilder(); builder.setValidation(true); builder.setEntityResolver(new ClasspathEntityResolver()); // 验证DTD四、JDOM vs dom4j光轮2000 vs 火弩箭 JDOM光轮2000 dom4j火弩箭 API设计更符合Java习惯灵活但稍显复杂依赖纯JDK自身jar依赖XPP3等维护状态活跃维护已进入维护模式学习曲线适合刚接触XML的新手适合需要高级功能的开发者 五、JDOM三大禁忌 内存沼泽 处理GB级XML文件时JDOM会把整个文件吞进内存像吃了膨化咒的洛丽丝夫人 并发诅咒 Document对象非线程安全多线程操作需要同步锁类似看守博格特 XPath性能陷阱 复杂XPath查询在大型文档中可能比嗅嗅找金币还慢 六、JDOM安全防护咒 输入消毒术 public String sanitize(String input) {return input.replaceAll([], _); // 替换特殊字符 }白名单验证 ListString allowedTags Arrays.asList(课程, 教授); if(!allowedTags.contains(element.getName())) {throw new 黑魔法防御术Exception(); }内存限制咒 SAXBuilder builder new SAXBuilder(); builder.setEntityExpansionLimit(50); // 限制实体扩展次数七、JDOM哲学XML即Java对象 每个Element都是可组合的魔法积木每个Attribute都是积木的拼接卡扣每个Document都是你的霍格沃茨城堡而内存溢出…是试图在塔楼里造魁地奇球场的后果 最后提醒使用try-with-resources关闭资源否则家养小精灵会罢工
http://www.zqtcl.cn/news/431747/

相关文章:

  • 在线课程网站开发的研究意义网站开发需要哪些知识
  • 深圳网站优化怎么做手工艺品外贸出口公司网站建设方案
  • 从网站优化之角度出发做网站策划wordpress邀请码插件
  • 大学营销型网站建设实训课程o2o的四种营销模式
  • 咋做网站代码背景图宁远网站建设
  • 有哪些可以做网站的企业网站想换个风格怎么做
  • 怎么在百度搜索自己的网站在电脑上建设个人网站
  • wordpress网站菜单固定电商未来发展趋势前景
  • 五合一网站建设费用python 做网站 用哪个框架好
  • 波莱网站开发动态域名可以做网站吗
  • 网站建设 赣icp 南昌面馆装修设计
  • 福田附近公司做网站建设多少钱网站建设文献综述范文
  • 镇江网站建设设计建设银行投诉网站首页
  • 石家庄个人做网站广州全网络营销
  • html5网站建设加盟wordpress 4.8.6
  • 携程网站建设的基本特点哈尔滨做平台网站平台公司
  • 网站建设入门解读国模 wordpress
  • 网站购物车js代码怎么做制作app的软件有哪些
  • 36氪网站用什么程序做的互联网门户网站建设
  • 视频聚合网站怎么做不侵权wordpress 管理员插件
  • 传媒网站后台免费模板网站建设的进度计划
  • 如何做网站排名合肥全网优化
  • 网站建设招聘信息官网 wordpress
  • 城阳网站开发公司网页制作与设计在哪搜题
  • 做网站算运营吗grace wordpress
  • 厦门建设网站建站制作网页动画的软件
  • 百度提交网站收录入口郑州网站app开发
  • 自己的身份已经网站备案了品牌建设目标包括哪些方面
  • 中国免费网站服务器下载保定网站制作系统
  • 深圳app网站设计数据库网站建设公司