导航:首页 > 编程语言 > xml解析特殊字符处理java

xml解析特殊字符处理java

发布时间:2023-04-03 05:08:17

A. java如何解析xml格式的字符串

我发个Demo给你吧
加8446666

B. java xml格式字符串解析

package test;

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

/**
* 使用JDOM实现XML解析,jar包:jdom-2.0.5.jar
* @author zhurongfu
*
*/
public class JdomTest {
public static void parseXml (File file) throws JDOMException, IOException{

SAXBuilder sax = new SAXBuilder();
Document doc = sax.build(file);
Element root = doc.getRootElement();

parseElement(root);
}

private static void parseElement(Element element) {
// TODO Auto-generated method stub
List<Element> elementList = element.getChildren();
for(Element e:elementList){
if(e.getChildren().size() > 0){
parseElement(e);
}else {
String elementName = e.getName();
if("id".equals(elementName)){
System.out.println("a的值为:"+e.getValue());
}else if("destaddr".equals(elementName)) {
System.out.println("b的值为:"+e.getValue());
}else if("status".equals(elementName)){
System.out.println("c的值为:"+e.getValue());
}
}
}
}

public static void main(String[] args) throws JDOMException, IOException {
// TODO Auto-generated method stub
File file = new File("test.xml");
parseXml(file);
}

}

C. 在java中解析xml有哪几种方法

(1)DOM解析
DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取
和操作文档的任意部分,是W3C的官方标准
【优点】
①允许应用程序对数据和结构做出更改。
②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。
【缺点】
①通常需要加载整个XML文档来构造层次结构,消耗资源大。
【解析详解】
①构建Document对象:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = bdf.newDocumentBuilder();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);
Document doc = bd.parse(is);
②遍历DOM对象
Document: XML文档对象,由解析器获取
NodeList: 节点数组
Node: 节点(包括element、#text)
Element: 元素,可用于获取属性参数
(2)SAX(Simple API for XML)解析
流模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法
完成解析工作,解析XML文档的逻辑需要应用程序完成
【优势】
①不需要等待所有数据都被处理,分析就能立即开始。
②只在读取数据时检查数据,不需要保存在内存中。
③可以在某个条件得到满足时停止解析,不必解析整个文档。
④效率和性能较高,能解析大于系统内存的文档。
【缺点】
①需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),文档越复杂程序就越复杂。
②单向导航,无法定位文档层次,很难同时访问同一文档的不同部分数据,不支持XPath。
【原理】
简单的说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束时通知事件
处理函数(回调函数),进行相应处理,直到文档结束
【事件处理器类型】
①访问XML DTD:DTDHandler
②低级访问解析错误:ErrorHandler
③访问文档内容:ContextHandler
【DefaultHandler类】
SAX事件处理程序的默认基类,实现了DTDHandler、ErrorHandler、ContextHandler和EntityResolver接口,通常
做法是,继承该基类,重写需要的方法,如startDocument()
【创建SAX解析器】
SAXParserFactory saxf = SAXParserFactory.newInstance();
SAXParser sax = saxf.newSAXParser();
注:关于遍历
①深度优先遍历(Depthi-First Traserval)
②广度优先遍历(Width-First Traserval)
(3)JDOM(Java-based Document Object Model)
Java特定的文档对象模型。自身不包含解析器,使用SAX
【优点】
①使用具体类而不是接口,简化了DOM的API。
②大量使用了Java集合类,方便了Java开发人员。
【缺点】
①没有较好的灵活性。
②性能较差。
(4)DOM4J(Document Object Model for Java)
简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP
【优点】
①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。
②支持XPath。
③有很好的性能。
【缺点】
①大量使用了接口,API较为复杂。
(5)StAX(Streaming API for XML)
流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持,JDK1.6新特性
【和推式解析相比的优点】
①在拉式解析中,事件是由解析应用产生的,因此拉式解析中向客户端提供的是解析规则,而不是解析器。
②同推式解析相比,拉式解析的代码更简单,而且不用那么多库。
③拉式解析客户端能够一次读取多个XML文件。
④拉式解析允许你过滤XML文件和跳过解析事件。
【简介】
StAX API的实现是使用了Java Web服务开发(JWSDP)1.6,并结合了Sun Java流式XML分析器(SJSXP)-它位于
javax.xml.stream包中。XMLStreamReader接口用于分析一个XML文档,而XMLStreamWriter接口用于生成一个
XML文档。XMLEventReader负责使用一个对象事件迭代子分析XML事件-这与XMLStreamReader所使用的光标机制
形成对照。

D. java 读XML时 <![CDATA段是否需要特殊处理 怎么处理 请帖源码.

可以使用则庆sax解析
例如
<sequenceFlow id="歼盯卖flow6" sourceRef="exclusivegateway1" targetRef="usertask3">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${leaveDay <=3}]]><氏逗/conditionExpression>
</sequenceFlow>
获得conditionExpression元素之后,使用 conditionExpression.getText();就可以得到${leaveDay <=3}
注:conditionExpression为Element

E. java解析XML字符串的问题

使用第三发组件,我用的是dom4j.jar
代码如下:
import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class TestArray{
private File file;
public TestArray(File file){
this.file=file;
}
public void read() throws DocumentException{
//获得解析器
SAXReader sr = new SAXReader();
//解析xml文件
Document doc = sr.read(file);
//获得xml根元素
Element root = doc.getRootElement();
//获得根元素迭代器
Iterator<Element> ir = root.elementIterator();
//迭代根元素,看根元素下有哪些其他元素
while (ir.hasNext()) {
//第一个元素
Element element = (Element) ir.next();
//判断是哪个元素,方法应该没用错,错了就不好意思了
if(element.getName().equals("flag")){
//获取此元素属性值
String code = element.attributeValue("code");
String msg = element.attributeValue("msg");
}else{
String totalCount = element.attributeValue("totalCount");
Iterator<Element> ir1 = element.elementIterator();
//如果此元素下还有别的元素,则继续迭代
while(ir1.hasNext()){
Element commentary = (Element) ir1.next();
String type = commentary.attributeValue("type");
}
}
}
}
}

F. 在Java程序处理中,对于XML格式的字符串,碰到&,‘,“等字符,该如何处理

& 是用 & a m p ; 来代替

去掉空格……昨天写完忘记看被自己换成&了
引号不记得了
差不多的方法,自己查查吧

G. java中怎样对读取的xml数据中的特殊字符进行编码

不确定有无,但你可以方便的自己写一个这样的方法
首先把字符转换成int类型,这个int就表示那个字符的unicode值
然后把这个int转成String类型
最后在这个String的前面加上&#就可以了

H. java解析第三方xml文件 文件中的特殊字符如何处理 文件不可改

一般的特殊字符都是需要转义的,请参阅xml特殊字符如何转义。

I. 解析XML遇到不可见特殊字符

用restassured发API请求返回的XML response, java解析的时候报failed to parse XML document.
在eclipse里面将response打印在控制台, 发梁卖知现<awd>前多打印了一个?

将response放到在线XML格式化工具内,橡消报Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog.

将鼠标放到<aws>的<前, 按下delete键, 重新格式化, 正常

猜想返回的response前存在不可见的特殊字符

于是将返回的response 字符串使用responseStr = responseStr .replaceAll("\\p{C}", ""配握) ; 问题解决。

Note: \p{C} - 不可见的控制字符
http://www.regular-expressions.info/unicode.html 

J. 如何处理XML中的特殊字符

在XML中,有一些符号作为XML 的标记符号,一些特定情况下,属性值必须带有这内些特殊符号。下面主容要是讲解一些常用的特殊符号的处理

例一:双引号的使用。

双引号作为XML 属性值的开始结束符号,因此无法在值中直接使用"".处理方式可以分为两种。

a:属性值中没有'(单引号),那么可以用单引号'' 作为属性值的开始结束符号

<add key="IPhone" value="apple"/> ...属性值为("apple").

解决:<add key="IPhone" value=’"apple"‘/>

b:属性值中有'(单引号),也有双引号。如...属性值为("'apple").

<add key="IPhone" value="&quot;&apos;apple&quot;"/>

下表为 XML 标记使用的字符列出了五种内置实体。

如果字符可能会使 XML 分析器错误地解释文档结构,请使用实体,而不要键入字符。&apos; 和 &quot; 实体引用最常用在属性值中。

阅读全文

与xml解析特殊字符处理java相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接