应用场景
在Android应用开发过程中,有时候我们自己有一些XML文件是我们自己手动创建的,而在项目开发过程中可能会用到,也就是说这用到了原始的XML资源文件。这个XML原始资源文件我们可以通过Resouce类的以下两个方法来获得:
getResouce.getXml(int id);
getRawResouce(int id)
这两个方法返回的对象是一个XmlResouceParser类的对象。而XmlResouceParser类是XmlPullParser类的子类,所以我们可以Android内置的Pull模式解析我们的XML文件,这也是本人比较喜欢的一种解析XML文件方式。因为它相对于DOM解析具有占有内存小,解析快,相对于SAX来说编写代码不那么复杂,只要编写那么一点代码就可以完成对XML文件的解析。
关于PULL模式解析XML文件,可以参看我之前写的一篇文章:
Android平台下的XML文件解析之PULL模式解析 .
http://blog.csdn.net/jiahui524/article/details/6955196
实例 :使用原始XML文件
实现过程:
1、在res/下新建一个xml的文件夹,在这个文件夹下新建一个person.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="1">
<name>张三</name>
<age>20</age>
</person>
<person id="2">
<name>李四</name>
<age>22</age>
</person>
</persons>
2、编写布局文件:main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btnParser"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="解析原始XML资源文件" />
<EditText
android:id="@+id/edtContent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="5" />
</LinearLayout>
3、编写Activity的代码
package com.jiahui.xmlres;
import android.app.Activity;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class XmlResTestActivity extends Activity {
private Button btnParser;
private EditText edtContent;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnParser = (Button) this.findViewById(R.id.btnParser);
edtContent = (EditText) this.findViewById(R.id.edtContent);
btnParser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取res/xml下的原生XML文件
XmlResourceParser parser = getResources().getXml(R.xml.persons);
try {
StringBuilder sb = new StringBuilder();
int eventType = parser.getEventType();
while (eventType != XmlResourceParser.END_DOCUMENT) {
switch (eventType) {
case XmlResourceParser.START_TAG:
String tagName = parser.getName();
if (("person").equals(tagName)) {
// 得到第一个属性
String personid = parser.getAttributeValue(0);
sb.append("ID:" + personid);
} else if ("name".equals(parser.getName())) {
String name = parser.nextText();
sb.append("姓名:" + name);
} else if ("age".equals(parser.getName())) {
String age = parser.nextText();
sb.append("年龄:" + age);
}
break;
case XmlResourceParser.END_TAG:
// 结束时加一个空行
if ("person".equals(parser.getName())) {
sb.append("\n");
}
break;
default:
break;
}
// 解析下一个事件
eventType = parser.next();
}
// 将解析的结果放在文本编辑框
edtContent.setText(sb.toString());
} catch (Exception e) {
// TODO: handle exception
}
}
});
}
}
分享到:
相关推荐
以上步骤展示了如何使用ABAP中的IXML库来创建一个XML文件。通过创建IXML工厂、构建DOM对象模型、设置属性和值、渲染以及保存文档,最终实现了生成并保存XML文件的目标。这种方法不仅适用于简单的XML文档,也可以扩展...
- 最后,使用`EncryptedXml.ReplaceData()`方法将原始XML数据替换为加密后的数据,并保存为新的XML文件。 2. **解密XML文件**: - 加载已加密的XML文件,使用`XDocument.Load()`或` XmlDocument.Load()`方法。 -...
在本例中,我们使用 `DocumentBuilderFactory` 创建一个 `DocumentBuilder` 对象,然后使用 `DocumentBuilder` 对象解析 XML 文件,最后获取文档的根元素,并遍历元素来访问 XML 文档的各个元素。 代码中,我们使用...
首先解析XML文件,然后解码Base64字符串回原始的二进制数据,并保存为图像文件: ```csharp // 解析XML文件 xmlDoc.Load("image_data.xml"); // 获取图像元素 XmlElement imageElement = xmlDoc.SelectSingleNode...
3. **解密数据**:如果XML文件被加密,可能需要使用特定的解密算法来恢复原始内容。 4. **查看和分析**:使用JD-GUI或其他反编译结果查看器来浏览和理解生成的Java源代码和解密后的XML文件。 反编译XML文件对于...
本篇文章将详细探讨如何使用MATLAB来快速有效地处理XML文件。 首先,我们来看读取XML文件。MATLAB中的`xmlread`函数是用于读取XML文件的主要工具。例如,如果你有一个名为`data.xml`的文件,你可以这样读取它: ``...
我们可以使用`Load`方法加载本地或网络上的XML文件。 - **解析XML**:`XmlNode`和`XElement`对象可用于遍历XML树,提取所需信息。例如,使用`SelectNodes`或`Descendants`方法找到特定元素,`InnerText`或`Value`...
- 创建一个新的XML文档对象或加载现有的XML文件。 - 选择要加密的部分,创建`EncryptedData`元素。 - 使用`EncryptedXml`类的`Encrypt()`方法进行加密。 - 将加密后的XML替换原始内容,保存文件。 4. XML文档...
1. 加载XML文件:使用`XmlDocument`类加载XML文件,如`XmlDocument doc = new XmlDocument(); doc.Load("input.xml");` 2. 遍历XML文档:通过`XmlNodeList`获取所有元素节点,可以使用`doc.GetElementsByTagName("*...
1. **解析XML文件**:使用XML处理库读取XML文件内容,并解析出包含Base64编码的图片数据的元素。 2. **Base64解码**:将Base64字符串解码回原始的二进制数据。 3. **写入图片**:使用图像处理库将解码后的二进制数据...
然而,原始的XML文件往往没有缩进和换行,这使得阅读和调试变得困难。因此,Java中提供了一些工具和方法来格式化XML文件,使其更易于理解和处理。本文将深入探讨如何使用Java来格式化XML文件。 首先,我们需要了解...
2. **XML文件读取**: 使用`System.IO.File.ReadAllText()`或`XDocument.Load()`方法读取XML文件内容到内存。 3. **加密XML文档**: 创建一个`XmlDocument`对象,将读取的XML内容加载进去。然后,使用`Xml Encryption...
Java实现XML文档到Word文档的转换是一项实用的技术,尤其是在需要保持原始文档样式的情况下。通过合理设计XML文档结构、有效利用DOM4J进行解析以及借助适当的Word文档处理库(如Apache POI),开发者可以轻松实现这...
4. **反混淆**:如果XML文件经过混淆,如改变元素和属性名称,可能需要使用专门的反混淆工具,如`dex2jar`和`JD-GUI`,来恢复原始的代码结构。 5. **理解安全问题**:解密XML文件主要是为了调试或学习,但请注意这...
1. **解析XML文件**:可以使用MSXML库(Microsoft XML Core Services)或者Windows SDK中的IXMLDOMDocument接口来解析XML文件。首先,创建一个IXMLDOMDocument对象,然后加载XML文件。例如: ```cpp CoInitialize...
Java 中编写XML文件涉及到的主要技术是Java API for XML Processing(JAXP),这是一个用于XML文档处理的Java编程接口。JAXP提供了对DOM(Document Object Model)、SAX(Simple API for XML)和XSLT(Extensible ...
当我们打开一个.docx文件,可以看到一系列的XML文件,如document.xml、styles.xml等,它们定义了文档的结构和样式。 要将Word文档转换为XML,我们需要遵循以下步骤: 1. **读取Word文档**:在Android中,可以使用...
1. TiXmlBase:所有TinyXML类的基类,包含结点或属性在原始XML文档中的位置信息。 2. TiXmlAttribute:用于表示XML元素的属性,每个属性都是一个键值对。 3. TiXmlNode:XML结点的基类,提供对XML文档树结构的操作和...
在Unity游戏开发中,使用XML文件作为数据存储和配置是很常见的做法。XML文件因其结构清晰、易于读写和跨平台的特性,深受开发者喜爱。本文将深入探讨如何在Unity的StreamingAssets路径下加载XML文件,并解决不同平台...
在XMLDemo的压缩包中,可能包含XML文件、解析和操作XML的代码示例,以及可能的验证规则和转换样式表。通过分析这些内容,我们可以深入理解XML在实际应用中的工作原理和效果。对于初学者来说,这样的示例是学习XML...