社区
XML/XSL
帖子详情
如何解析XML字符串
itti
2011-01-06 08:06:53
早上好,各位:
我是XML新手。
我有一段XML字符串保存在数据库字段中,我想把这段XML字符串按一定的格式显示在网页的某个位置上,请问如何解析XML字符串并按我的格式显示。
感谢您的任何有益的建议或方法!
...全文
821
8
打赏
收藏
如何解析XML字符串
早上好,各位: 我是XML新手。 我有一段XML字符串保存在数据库字段中,我想把这段XML字符串按一定的格式显示在网页的某个位置上,请问如何解析XML字符串并按我的格式显示。 感谢您的任何有益的建议或方法!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ljybasically
2011-03-01
打赏
举报
回复
按照例子写过一个,但其实对原理还不是很明白
18PI
2011-02-14
打赏
举报
回复
xml,刚学了点皮毛啊,神马都没弄懂
alsamsung
2011-01-21
打赏
举报
回复
学习了,刚刚接触xml
KK3K2005
2011-01-12
打赏
举报
回复
[Quote=引用 3 楼 itti 的回复:]
最方便的方法是什么?DOM?XSLT?
[/Quote]
单单显示xml 就用xslt
heardy
2011-01-12
打赏
举报
回复
xml 的四种解析方法(SAX、DOM、JDOM、DOM4J)
我比较喜欢用dom4J
Dream_Daisy
2011-01-06
打赏
举报
回复
如果xml是这种结构
<?xml version="1.0" encoding='UTF-8'?>
<requestSummary currentTime='' startDay='2009-12-23' endDay='2009-12-23'>
<building building='2'>
<floor floorName='1'>
<line lineName='N1'>
<completedInfo seatNo='12' ticket='1'>
<completedDetail requestTime='43223556647'
requestStaffNo='H0051' requestStaffName='张三'>
</completedDetail>
</completedInfo>
<completedInfo seatNo='13' ticket='2'>
<completedDetail requestTime='43223556647'
requestStaffNo='H0050' requestStaffName='小王'>
</completedDetail>
</completedInfo>
</line>
</floor>
</building>
</requestSummary>
一下是java解析代码:
第一步,查找孩子结点及父结点
public void getChildForDetail(Node node) {
if (node.hasAttributes()) {
DetailData detailData = new DetailData();
// setBuildingName
detailData.setBuildingName(buildingName);
HashMap<String, String> detailMap = new HashMap<String, String>();
if ("completedInfo".equals(node.getNodeName())) {
// 下面的代码为InProgressRequest特制------
Node parent = node.getParentNode();
String pName = parent.getNodeName();
if ("line".equals(pName)) {
getParentAttr(parent,detailMap);
}
//为InProgressRequest特制 End-----
getChildAttrByNode(node, detailMap);
// setDetailMap
detailData.setDetailMap(detailMap);
// detailData 对象添加
detailList.add(detailData);
}
}
if (node.hasChildNodes()) {
NodeList n2 = node.getChildNodes();
for (int j = 0; j < n2.getLength(); j++) {
getChildForDetail((Node) n2.item(j));
}
}
}
第2步:取出结点的属性
/**
* 取出detailDate信息
*
* @param node
* 当前节点
* @param detailMap
* 存储当前节点及子节点的所有属性信息
*/
public void getChildAttrByNode(Node node,
HashMap<String, String> detailMap) {
if (node.hasAttributes()) {
NamedNodeMap nnm = node.getAttributes();
int len = nnm.getLength();
for (int j = 0; j < len; j++) {
Node attr = nnm.item(j);
detailMap.put(attr.getNodeName(), setValueForNull(attr
.getNodeValue()));
}
}
if (node.hasChildNodes()) {
NodeList n2 = node.getChildNodes();
for (int j = 0; j < n2.getLength(); j++) {
getChildAttrByNode((Node) n2.item(j), detailMap);
}
}
}
xml结构有多种情况,需视情况而解析,注意是关键性的节点循环的地方发生变化
Dream_Daisy
2011-01-06
打赏
举报
回复
解析xml有多种方法:Dom解析、Sax解析等
下面是java基础的解析方法:
对下面的xml格构进行解析
<?xml version="1.0" encoding='UTF-8'?>
<requestSummary currentTime='' startDay='2009-12-23' endDay='2009-12-23'>
<dailySummary day='2008-03-01' totalCall='298'
avgResponseTime='00:05' avgRepairTime='00:35'>
</dailySummary>
<dailySummary day='2008-03-01' totalCall='340'
avgResponseTime='00:03' avgRepairTime='00:50'>
</dailySummary>
</requestSummary>
/**
* 迭代child结点
* @param node
* @param map
*/
public void getChild(Node node, HashMap<String, String> map) {
if (node.hasAttributes()) {
getAttrByNode(node, map);
}
if (node.hasChildNodes()) {
NodeList n2 = node.getChildNodes();
for (int j = 0; j < n2.getLength(); j++) {
getChild((Node) n2.item(j), map);
}
}
}
/**
* 得到当前结点的属性
* @param node
* @param map
*/
public void getAttrByNode(Node node, HashMap<String, String> map) {
if (node.hasAttributes()) {
NamedNodeMap nnm = node.getAttributes();
int len = nnm.getLength();
for (int j = 0; j < len; j++) {
Node attr = nnm.item(j);
map.put(attr.getNodeName(),
setValueForNull(attr.getNodeValue()));
}
}
}
itti
2011-01-06
打赏
举报
回复
最方便的方法是什么?DOM?XSLT?
VC使用Cmarkup生成、
解析
xml
资料
小:编译到你的工程只是很小的一个类,并且对于文档只维持了一个
字符串
,以及一个总计小于
字符串
内存大小的索引数组。 快:分析器在相当快的建立索引数组。 简单:EDOM方法使创建、导航和修改XML无比的简单。 ...
Xml
和Json互转工具类
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了
xml
字符串
和json
字符串
之间的转化,
xml
文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
net.sf.json jar包 最全版
JAVA中使用JSON进行数据传递,用于java生成json
字符串
,和java
解析
json
字符串
(如果要使程序可以运行的话必须引入JSON-lib包,而JSON-lib包是一个beans,collections,maps,java arrays和
XML
和JSON互相转换的包)
json-lib-2.4 jar 程序文件
`可以将
XML
字符串
转换为JSON对象,反之亦然。 5. **自定义类型转换**:对于自定义的Java类,可以实现`net.sf.json.JSONSerializable`接口或使用`JSONObject beanProcessor`来定义自定义的序列化和反序列化规则。 6...
fastjson的jar包 绿色版
它还提供了
解析
JSON
字符串
和生成JSON
字符串
的方法,使得处理JSON数据变得简单易行。 其次,`fastjson-1.2.2-sources.jar`包含了Fastjson 1.2.2版本的源代码,这对于开发者来说是极其宝贵的资源。通过查看源代码,...
XML/XSL
8,907
社区成员
22,677
社区内容
发帖
与我相关
我的任务
XML/XSL
XML/XSL相关问题讨论专区
复制链接
扫一扫
分享
社区描述
XML/XSL相关问题讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章