gpt4 book ai didi

java - 安卓 :Parse XML Data: Tags with arguments

转载 作者:行者123 更新时间:2023-11-30 09:24:32 27 4
gpt4 key购买 nike

我想为我的 Android 应用解析从数据库软件导出的 XML 文件。然而,一些标签有这样的参数:

<row><br/>
<value column="Index" null="false">1</value><br/>
<value column="Front" null="false">INFO</value><br/>
<value column="Back" null="false">INFO</value><br/>
<value column="Check" null="false">0</value><br/>
</row>

在试图找到开始标记来解析它时,我应该指定什么字符串值?(例如:为了找到行,我将开始抽头与“行”进行比较,如果它返回 true,我将计算数据。我对每个值(即索引、前、后和分别检查)做了什么?)

我的java代码如下

   try{ 
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();

InputStream stream = context.getResources().openRawResource(com.Whydea.chemistryhelper.R.raw.appxml);
xpp.setInput(stream, null);

int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT){
if(eventType==XmlPullParser.START_TAG){
handleStartTag(xpp.getName()); //handels Start Tag
} else if (eventType==XmlPullParser.END_TAG){
handleEndTag(xpp.getName());
Ctag=null;
} else if (eventType==XmlPullParser.TEXT){
handleText(xpp.getText());
}
eventType=xpp.next();
}

}catch (NotFoundException e){
Log.d("XMLpp",e.getMessage());
}catch (XmlPullParserException e){
Log.d("XMLpp",e.getMessage());
}catch (IOException e){
Log.d("XMLpp",e.getMessage());
}

`

编辑:

每个“值”开始标签都有自己的属性(列=...),我如何访问它们?

例如:要访问一行,我有一个值为“行”的字符串常量,并检查开始标记是否对应于该行,并且它有效。但是当我声明一个字符串常量值为“value column=\"Check\"null=\"false\""(我必须使用\other wise "give errors)时,它找不到开始标记。那又怎样我的常量应该是?

最佳答案

如果我正确理解了您的问题,那么要获取您需要执行的每个值,基本上您想要获取 xml 标记内每个属性的值

          int attributeCount = xpp.getAttributeCount();
for(int i = 0; i<attributeCount; i++){
String name = xpp.getAttributeName(i);
//Log.d(TAG, "Name: "+name);
if(name != null && name.equalsIgnoreCase("column")){

return Integer.parseInt(xpp.getAttributeValue(i));
}
}

因此,一旦遇到该行,便会查找起始标记“value”,一旦找到它,然后使用上面的代码获取属性的各个值。

根据您的评论,如果您想获取 XML 标记的文本值,则必须使用 getText() 方法。找到 START_TAG 值后,执行以下代码:

                    eventType = xpp.next();
if(eventType == XmlPullParser.TEXT){
String text = xpp.getText();
}

对于 xml 标记“INFO”值,它将返回“INFO”

关于java - 安卓 :Parse XML Data: Tags with arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15634676/

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