dom4j

[org.jaxen.util.AncestorAxisIterator->org.jaxen.ut

青春壹個敷衍的年華 提交于 2020-03-02 15:25:34
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [org.jaxen.util.AncestorAxisIterator->org.jaxen.util.AncestorOrSelfAxisIterator->org.jaxen.util.AncestorAxisIterator] at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2159) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2105) at org.apache

将XML文件内容转换成json格式

て烟熏妆下的殇ゞ 提交于 2020-02-28 14:11:28
package com.lieni.ruyu.api.xmlTool; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class XmlToJson { /** * 将xml转换为JSON对象 * * @param xml xml字符串 * @return * @throws Exception */ public static JSONObject xmltoJson(String xml) throws Exception { JSONObject jsonObject = new JSONObject();

Java通过XSD(XML Schema)校验XML

六月ゝ 毕业季﹏ 提交于 2020-02-27 01:03:50
还有一个好帖: schema学习系列五: schema校验 1.准备好正确的XML文件a.xml <?xml version="1.0"?> <note> <name>Tom</name> <gender>male</gender> <age>16</age> <address>changjiang road</address> </note> 2.使用正确的XML文件自动生成XSD校验文件a.xsd,需要借助第三方jar包trang.jar,执行命令 java -jar trang.jar a.xml a.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="note"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="address"/> <xs:element ref="age"/> <xs:element ref="gender"/> <xs:element ref="name"/> </xs

【Java Web_07】XML

喜你入骨 提交于 2020-02-26 17:02:07
一、XML概述 1. 什么是XML * Extensible Markup Language 可扩展标记语言 2. XML的基本语法 ① 基本语法: * xml文档的后缀名 .xml * xml首行必须定义为文档声明 * xml文档中有且仅有一个根标签 * 属性值必须使用引号(单双都可)引起来 * 标签必须正确关闭 * xml标签名称区分大小写 # XML语法严格,标签自定义,主要用来存储数据 # CDATA 区【 <![CDATA[ 数据 ]]>】内数据将原样展示 ② 示例 <?xml version='1.0' encoding="UTF-8" ?> <users> <user id='001'> <name>tom</name> <age>18</age> <gender>male</gender> <br/> </user> <user id='002'> <name>jack</name> <age>18</age> <gender>female</gender> </user> </users> 3. XML约束 ① 分类 * DTD【简单、有漏洞】 * Schema ② DTD使用方法 * 本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置"> * 网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL"> ③

dom4j解析

蹲街弑〆低调 提交于 2020-02-19 18:40:33
XML 解析概述 当将数据存储在 XML 后,我们就希望通过程序获得 XML 的内容。如果我们使用 Java 基础所学习的旧知识是可以完成的,不过你需要非常繁琐的操作才可以完成,且开发中会遇到不同问题 ( 只读、读写 ) 。人们为不同问题提供不同的解析方式,并提交对应的解析器,方便开发人员操作 XML 。 解析方式和解析器 DOM: 要求解析器把整个 XML 文档装载到内存,并解析成一个 Document 对象。 a) 优点 : 元素与元素之间保留结构关系,故可以进行增删改查操作。 b) 缺点 :XML 文档过大,可能出现内存溢出显现。 SAX: 是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件 驱动的方式进行具体解析,每执行一行,都将触发对应的事件。 ( 了解 ) a) 优点 : 处理速度快,可以处理大文件 b) 缺点 : 只能读,逐行后将释放资源。 3 PULL: Android 内置的 XML 解析方式,类似 SAX 。 ( 了解 ) 解析器 : 就是根据不同的解析方式提供的具体实现。有的解析器操作过于繁琐,为了方便开发人员,有提供易于操作的解析开发包 l 常见的解析开发包 : JAXP: sun 公司提供支持 DOM 和 SAX 开发包 JDom:dom4j 兄弟 jsoup: 一种处理 HTML 特定解析开发包 dom4j: 比较常用的解析开发包,

adding namespace and namespace prefix using dom4j

杀马特。学长 韩版系。学妹 提交于 2020-01-25 03:18:05
问题 i am updating one xml using dom4j as below. SAXReader reader = new SAXReader(); document = reader.read( xmlFileName ); but it removes all namespaces from the elements so wanna add manually but it does not work when i tried the following code. Element e1 = root.addElement("jmsProducer"); e1.addNamespace("AEService", "http://www.tibco.com/xmlns/aemeta/services/2002"); my xml looks like <AEService:jmsProducer objectType="endpoint.JMSPublisher" name="Pub1EndPoint"> <AEService:wireFormat>aeXml<

使用Dom4j和Jdom读写XML文件

只愿长相守 提交于 2020-01-19 17:42:04
Dom4j package com . jadyer . demo . xml ; 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 . XMLWriter ; import java . io . IOException ; /** * Dom4j读取XML * */ public class Dom4jDemo { public static void main ( String [ ] args ) throws IOException , DocumentException { xmlRead ( ) ; xmlWrite ( ) ; } private static void xmlRead ( ) throws DocumentException { ////读取XML文件获取Document对象 //Document document = new SAXReader().read(new File("D:

Dom4j

别说谁变了你拦得住时间么 提交于 2020-01-14 00:17:46
标题简介: dom4j是一个叫dom4j的组织开发的用于解析xml的工具,开源的. dom4j不是java自有功能,需要另外导包. dom4j非常方便的对xml进行解析和增删查改操作,常用来对配置文件进行操作. dom4j支持dom解析和sax解析方式. 常用方法: // 获取解析器 SAXReader saxReader = new SAXReader(); // 获取文档 Document document = saxReader.read(“dom4j/person.xml”); // 获取根元素 Element root = document.getRootElement(); Element的常用方法 List element.elements(""):获取所有的直接子元素 Element element.element(“name”):获取第一个名为name的直接子元素 List element.elements(“name”):获取名为name的直接子元素集合 element.addElement(“sex”):添加元素名为sex的子元素 element.setText(“文本内容”):设置该元素的值 element.getText():获取该元素的文本值 element.getParent().remove(element):通过获取父元素删除元素. element

Using Xpath in Dom4j

自作多情 提交于 2020-01-12 06:29:26
问题 I get the following exception when trying to access any nodes of a parsed xml document on dom4j: Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230) at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207) at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164) at xmlparser.LevelsExtractor.findI(LevelsExtractor.java:73) at xmlparser.Main.main(Main.java:33) I know that the

Dom4j相关方法(创建、解析)

混江龙づ霸主 提交于 2020-01-08 19:50:45
/** * 组装测试报文 * @param serviceId * @param serviceTime * @return */ public static String getXmlInfo(String serviceId, String serviceTime) { //定义一个XML文档对象 Document document = DocumentHelper.createDocument(); // 文档增加节点,即根节点,一个文档只能有一个根节点,多加出错 Element root = document.addElement("Service"); // 添加注释 //root.addComment("报文头"); // 根节点下添加节点 Element first = root.addElement("Service_Header"); // 节点添加属性 //first.addAttribute("index", "01"); // 节点下添加节点 Element service_sn = first.addElement("service_sn"); Element service_id = first.addElement("service_id"); Element branch_id = first.addElement("branch_id");