首页 理论教育 《Android游戏开发:使用原始XML资源》

《Android游戏开发:使用原始XML资源》

时间:2023-10-22 理论教育 版权反馈
【摘要】:在Android应用程序中,通常将原始的XML资源保存在“/res/xml”目录下。Android应用程序对原始XML资源没有任何特殊的要求,只要它是一份格式良好的XML文档即可。如果开发者希望使用DOM、SAX或者其他解析器来解析XML资源,那么可以调用方法openRawResource来获取XML资源对应的输入流,这样即可自行选择解析器来解析指定XML资源了。在接下来的实例中,演示了使用原始的XML文件的基本过程。运行该程序,单击“解析XML资源”按钮后的执行效果如图9-3所示图9-3 执行效果

《Android游戏开发:使用原始XML资源》

在Android应用程序中,通常将原始的XML资源保存在“/res/xml”目录下。当开发者使用ADT创建Android应用程序时,在“/res/”目录下并没有包含这个目录,需要开发者自行手动创建XML目录。

Android应用程序对原始XML资源没有任何特殊的要求,只要它是一份格式良好的XML文档即可。一旦成功定义了原始XML资源,接下来在XML文件中可通过如下的格式来访问它。

978-7-111-54543-9-Part02-519.jpg

接下来在Java程序中可以按照如下的语法格式来访原始XML资源。

978-7-111-54543-9-Part02-520.jpg

为了在Java程序中获取实际的XML文档,可以通过Resources中的如下两个方法来获取。

■ XmlResourceParser getXml(int id):获取XML文档,并使用一个XmlPullParser来解析

该XML文档,该方法返回一个解析器对象(XmlResourceParser是XmlPullParser的子

类)。

■ InputStream openRawResource(int id):获取XML文档对应的输入流。

在大多数情况下,可以直接调用方法getXml(int id)来获取XML文档,并对该文档进行解析。Android默认使用内置的Pull解析器来解析XML文件。

除了Pull解析之外,Java开发者还可使用DOM或SAX对XML文档进行解析。一般的Java应用会使用JAXP API来解析XML文档。

Pull解析方式有点类似于SAX解析,它们都采用事件驱动方式来进行解析。当Pull解析器开始解析之后,开发者可不断地调用Pull解析器的next()方法获取下一个解析事件(开始文档、结束文档、开始便签、结束便签等),当处于某个元素处时,可调用XmlPullParser的nextText()方法获取文本节点的值。

如果开发者希望使用DOM、SAX或者其他解析器来解析XML资源,那么可以调用方法openRawResource(int id)来获取XML资源对应的输入流,这样即可自行选择解析器来解析指定XML资源了。

在接下来的实例中,演示了使用原始的XML文件的基本过程。(www.xing528.com)

978-7-111-54543-9-Part02-521.jpg

本实例的具体实现流程如下

1)编写XML资源文件books.xml,具体实现代码如下

978-7-111-54543-9-Part02-522.jpg

2)在Java程序文件XmlEX.java中获取上述XML资源,并解析该XML资源中的信息文件XmlEX.java的具体实现代码如下。

978-7-111-54543-9-Part02-523.jpg

978-7-111-54543-9-Part02-524.jpg

在上述代码中,“xrp.next()”用于不断地获取Pull解析的解析事件,只要解析事件不等于XmlResourceParser.END_DOCUMNET(也就是还没有解析结束)程序将一直解析下去,通过这种方式即可把整份XML文档的内容解析出来。

(3)在布局文件main.xml中设置一个按钮和一个文本框,当用户单击该按钮时会解析指定XML文档,并把文档中的内容显示出来。

978-7-111-54543-9-Part02-525.jpg

978-7-111-54543-9-Part02-526.jpg

运行该程序,单击“解析XML资源”按钮后的执行效果如图9-3所示

978-7-111-54543-9-Part02-527.jpg

图9-3 执行效果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈