社区
XML/XSL
帖子详情
如何解析XML字符串
itti
2011-01-06 08:06:53
早上好,各位:
我是XML新手。
我有一段XML字符串保存在数据库字段中,我想把这段XML字符串按一定的格式显示在网页的某个位置上,请问如何解析XML字符串并按我的格式显示。
感谢您的任何有益的建议或方法!
...全文
795
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
资料
【分享一下】 里面内容很多。。 觉得好就下吧 Cmarkup是依据EDOM的,这是这个简单
XML
分析的关键。EDOM是操作
XML
元素、属性和数据的简明方法集。当你不需要复杂的
XML
特性时,它避免你读大量的DOM和SAX文档。 如果你希望使用微软的MS
XML
,CMarkup工程中CmarkupMS
XML
类全面的演示了通过EDOM来使用MS
XML
,并且它是以C++ COM语法开始。 下面列出了CMarkup的特征: 独立:不需要任何外部的
XML
组件。 小:编译到你的工程只是很小的一个类,并且对于文档只维持了一个
字符串
,以及一个总计小于
字符串
内存大小的索引数组。 快:分析器在相当快的建立索引数组。 简单:EDOM方法使创建、导航和修改XML无比的简单。 MS
XML
:CMarkupMS
XML
类用EDOM方法包装了微软的
XML
服务。MS
XML
编译选项用来演示这个类。 UNICODE(统一字符编码标准):对于WindowsNT和WindowsCE平台能够被编译成UNICODE,在WindowsNT UNICODE下,
XML
文档是流到UTF-8文件中,但是内部用宽字符。 UTF-8:对于UTF-8文件,这接受和返回UTF-8
字符串
(确保_MBCS没有被定义) MBCS:对于双字节数据(定义_MBCS),它不与UTF-8兼容. STL:CMarkupSTL类完全没有使用MFC,它的演示要使用STL编译选项。
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互相转换的包)
解析
XML
字符串
在学习C语言文件操作时,遇到这样一个题目: 编写示例程序,把数据从文本文件中读取出来,并
解析
xml
,存入struct st_girl结构体中,然后在界面上显示出来。 文本文件的内容如下: 解决此题的大致思路:首先创建一个
字符串
数组用于存放从文本文件中读取到的数据,随后使用fgets函数逐行读取文件中的数据,读一行
解析
一行,最后存入相应的结构体数组。 为
解析
xml
字符串
,编写了以下核心函数: /* *函数功能:从
xml
字符串
中
解析
出相应的数据(姓名等) *函数参数:in_
XML
Buffer
xml
字符
解析
xml
字符串
解析
xml
字符串
XML/XSL
8,906
社区成员
22,677
社区内容
发帖
与我相关
我的任务
XML/XSL
XML/XSL相关问题讨论专区
复制链接
扫一扫
分享
社区描述
XML/XSL相关问题讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章