gpt4 book ai didi

android - 在读取 xml 文件时需要帮助

转载 作者:行者123 更新时间:2023-11-29 14:56:18 25 4
gpt4 key购买 nike

我在 res 下创建了一个 xml 文件夹,并将 myxml.xml 放在 xml 文件夹中。res/xml/myxml.xml

我想根据id号阅读说明。我怎样才能做到这一点?请帮忙。

myxml.xml是这样的;

<?xml version="1.0" encoding="utf-8" ?>
<Books>
<Number id ="1">
<Description>This is childrens book.
</Description>
</Number>
<Number id = "2">
<Description>This is about cooking.
</Description>
</Books>

这是我正在使用的代码(但似乎没有做任何事情)

try{
XmlPullParser xpp = getResources().getXml(R.xml.myxml);
while(xpp.getEventType() != XmlPullParser.END_DOCUMENT){
if(xpp.getEventType() == XmlPullParser.START_TAG){
if(xpp.getName().equals("Description")){

show1.setText(" " + xpp.getAttributeValue(1));
}
}
xpp.next();
}
}
catch(Throwable t){

}

最佳答案

对于您要在这里实现的目标,我建议使用 javax.xml.xpath .取自该页面上的示例,根据您的 XML 文件进行调整(此处的 XPath 将获得 ID 属性为 2 的 Number 的描述):

XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "//Number[@id='2']/Description";

try {
InputSource inputSource = new InputSource(activity.getResources().openRawResource(R.raw.myxml));
Node node = (Node) xpath.evaluate(expression, inputSource, XPathConstants.NODE);
String description = node.getTextContent();
} catch (Exception e) {
Log.d("ParseException", e.toString());
}

我稍微更新了示例以从资源输入流加载 InputSource。为此,看起来您需要将 xml 文件放在 res/raw 文件夹中而不是 res/xml (基于此答案:problem loading and parsing xml from resources)。我还必须执行 project > clean 才能使其正常工作。

您可能还想以更好的方式处理解析异常错误!

关于android - 在读取 xml 文件时需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079570/

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