gpt4 book ai didi

java android 非常大的xml解析

转载 作者:行者123 更新时间:2023-12-01 19:14:28 25 4
gpt4 key购买 nike

我有一个非常大的 xml 文件,其中一个 xml 文件中包含类别,该文件根据类别 ID 映射到另一个 xml 文件中的子类别。仅包含类别 ID 和名称的 xml 文件加载速度很快,但包含图像路径、描述、经纬度等子类别的 xml 文件加载时间较长。

我正在使用 javax.xml 包和 org.w3c.dom 包。列表操作是在每次单击时加载文件以查找子类别。有什么办法可以让整个过程更快吗?

编辑-1

这是我用来获取子类别的代码:文档 doc = this.builder.parse(inStream, null);

        doc.getDocumentElement().normalize();
NodeList pageList = doc.getElementsByTagName("page");
final int length = pageList.getLength();

for (int i = 0; i < length; i++)
{
boolean inCategory = false;
Element categories = (Element) getChild(pageList.item(i), "categories");


if(categories != null)
{
NodeList categoryList = categories.getElementsByTagName("category");
for(int j = 0; j < categoryList.getLength(); j++)
{
if(Integer.parseInt(categoryList.item(j).getTextContent()) == catID)
{
inCategory = true;
break;
}
}
}

if(inCategory == true)
{
final NamedNodeMap attr = pageList.item(i).getAttributes();
//

//get Page ID
final int categoryID = Integer.parseInt(getNodeValue(attr, "id"));

//get Page Name
final String categoryName = (getChild(pageList.item(i), "title") != null) ? getChild(pageList.item(i), "title").getTextContent() : "Untitled";

//get ThumbNail
final NamedNodeMap thumb_attr = getChild(pageList.item(i), "thumbnail").getAttributes();
final String categoryImage = "placethumbs/" + getNodeValue(thumb_attr, "file");

//final String categoryImage = "androidicon.png";

Category category = new Category(categoryName, categoryID, categoryImage);

this.list.add(category);
Log.d(tag, category.toString());
}
}

最佳答案

使用基于 SAX 的解析器,DOM 不适合大型 xml。

关于java android 非常大的xml解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7332503/

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