使用kxml解析xml文件(二)
一. 不同XML格式上的差异
<Bil BilID="09120005">
<Product PID="XS000-3">
<Package Needuan="10"/>
<Package Needuan="8"/>
</Product>
</Bil>
与
<channel>
<title>Meerkat: An Open2 Wire Service</title>
<link>http://meerkat.oreillynet.com</link>
<description>
Meerkat is a Web-based syndicated content reader based on RSS ("Rich Site Summary").
RSS is a fantastic, simple-yet-powerful syndication system rapidly gaining momentum.
</description></channel></rss>
的差异:
前者TAG后面有内容,例如<Bil ****></Bil>,后则是<title>text</title>
结束的方式不同<package ****/>
二、处理上的差异
1. KXML在解析时,将<Bil ****>认为是一个START_TAG;因此,对
<Bil ****></Bil>的解析:
紧接着START_TAG的就是END_TAG,中间没有TEXT;而
<title>text</title>的解释是:
START_TAG--->TEXT--->END_TAG
提取<Bil ****>中"***"的方法:
event.getAttributeCount()
event.getAttribute(i)
2.KXML对<Package Needuan="10"/>的解析:
START_TAG---->END_TAG
当KXML遇到/>时,就会产生END_TAG
贴一段代码:
private void parsekXMLItems(XmlParser parser) throws IOException{
// 接收事件类型
//int eventType = parser.getEventType();
ParseEvent event = parser.read ();
// 当事件类型不为文档末尾时
while (event.getType() != Xml.END_DOCUMENT) { // true
// System.out.println("parsekXMLItems");
switch (event.getType()) {// 判断事件类型
case Xml.START_TAG:// 为开始标记时
System.out.print("<" + event.getName());// 输出开始标记
frm.append("<" + event.getName());// 输出开始标记
// 当有属性时,输出属性
System.out.println("availableCount:"+event.getAttributeCount());
if (event.getAttributeCount() >= 1)
for (int i = 0; i < event.getAttributeCount(); i++) {
相关文档:
接上一篇《C#写XML的简单例子》
这个例子要修改XML文件中结点的属性和和元素的文本
1 原xml文件 bookstore.xml
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="love" ISBN="1234123">
<title>who am i </title>
&l ......
接上一篇
删除原genre属性,删除leixing=love的所有结点。
1 原xml文件 bookstore.xml
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="love" ISBN="1234123">
<title>who am i </title>
<author>who</aut ......
我用ActiveXObject("Microsoft.xmldom")来装载xml文档时,竟然老是提示装载失败,后来上网搜索了下,说是不能直接包含这5个符号('><&"),必须选用&xx;方式来转义,可我找遍XML也没发现这些。
后来我独行排除,才发现有一个元素的属性值为有“|”,去除后就正常了。我真是觉得奇怪,网上也没有说 ......
http://topic.csdn.net/u/20080905/10/caea1689-4582-417a-8723-d008a3ae1a10.html?550638422
tringBuilder sb = new StringBuilder();
sb.Append(" <?xml version=\"1.0\"?> ");
......
通常情况下,你可以从服务器上为tree控件取得XML数据 ,你也可以在<mx:Tree>Tag里直接定义格式良好的XML数据。
你可以使用<mx:XML>或者<mx:XMLList>Tag在mxml里定义XML数据。
你可以将XML object直接作为一个层级数据控件的dataProvider,however,if the object changes dynamically,你应该做如下处理: ......