gpt4 book ai didi

android - 在 Android 中从 res/xml 打开 XML 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:10 25 4
gpt4 key购买 nike

我创建了一个 Java 应用程序,它打开了一个如下所示的 xml 文件:

<AnimalTree>
<animal>
<mammal>canine</mammal>
<color>blue</color>
</animal>
<!-- ... -->
</AnimalTree>

我可以使用以下方式打开它:

File fXmlFile = getResources.getXml("res/xml/data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList animalNodes = doc.getElementsByTagName("animal");

然后我可以简单地创建一个节点,将对象插入 ListArray,然后在遍历 ListArray 时对对象执行我想要的操作。

for (int temp = 0; temp < animalNodes.getLength(); temp++) {
Node nNode = animalNodes.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
question thisAnimal = new animal();
thisAnimal.mammal = getTagValue("mammal",eElement);
// ...

简单明了!只是现在,在 Android 中我不能简单地读取文件“res/xml/data.xml”,因为“File();”需要一个 String 不是 integer (id)。这就是我迷路的地方。有什么方法可以让“File();”打开文件,或者如果不使用 SAXparserXPP 是不可能的? (无论我多么努力,我都无法理解。)
如果我被迫使用这些方法,有人可以向我展示一些类似于我的示例的简单代码吗?

最佳答案

如果它在资源树中,它将获得分配给它的 ID,因此您可以使用 openRawResource 函数打开流:

InputStream = context.getResources().openRawResource(R.xml.data);

关于在 Android 中使用 XML,this link on ibm.com非常彻底。

请参阅该链接中的 list 9. 基于 DOM 的提要解析器实现

一旦有了输入流(如上),就可以将其传递给 DocumentBuilder 的实例:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(this.getInputStream());
Element root = dom.getDocumentElement();
NodeList items = root.getElementsByTagName("TheTagYouWant");

请记住,我并没有亲自这样做——我假设 IBM 提供的代码有效。

关于android - 在 Android 中从 res/xml 打开 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4329308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com