- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 XML 文件是这样的:
<Items>
<Nested_item>
<id>1</id>
<name>nested</name>
<description>
<desc_item>1</desc_item>
<desc_item>2</desc_item>
<desc_item>3</desc_item>
</description>
</Nested_item>
<Nested_item>
<id>2</id>
<name>nested2</name>
<description>
<desc_item>1</desc_item>
<desc_item>2</desc_item>
<desc_item>3</desc_item>
</description>
</Nested_item>
<Nested_item>
<id>3</id>
<name>nested3</name>
<description>
<desc_item>1</desc_item>
<desc_item>2</desc_item>
<desc_item>3</desc_item>
</description>
</Nested_item>
</Items>
并且我的类 Items 具有我已放入 ArrayList 的属性,我已经设法解析除 desc_item 之外的所有属性(我需要它作为每个 Item 对象的 ArrayList)。例如,我如何告诉解析器只取第三项,并将这些 desc_item 值作为字符串获取?
最佳答案
我找到了解决问题的方法,我解析了内部数据,然后解析了特定数据:
private ArrayList<Proizvod> parseXML (XmlPullParser parser) throws XmlPullParserException, IOException {
ArrayList<Proizvod> proizvodLista = null;
int eventType = parser.getEventType();
Proizvod proizvod = null;
while(eventType != XmlPullParser.END_DOCUMENT){
String name;
switch (eventType){
case XmlPullParser.START_DOCUMENT:
proizvodLista = new ArrayList<Proizvod>();
break;
case XmlPullParser.START_TAG:
name = parser.getName();
//System.out.println(name);
if(name.equals("Proizvod")){
proizvod = new Proizvod();
proizvod.setId(parser.getAttributeValue(null, "id"));
}else if(proizvod != null){
if(name.equalsIgnoreCase("ime_proizvoda")){
proizvod.setIme_proizvoda(parser.nextText());
}else if(name.equalsIgnoreCase("vrsta_proizvoda")){
proizvod.setVrsta_proizvoda(parser.nextText());
}else if(name.equalsIgnoreCase("merna_jedinica")){
proizvod.setVrsta_proizvoda(parser.nextText());
}else if(name.equalsIgnoreCase("Prodavnice")){
proizvod.setLista_prodavnica(parsing(parser));
}
}
break;
case XmlPullParser.END_TAG:
name = parser.getName();
if(name.equalsIgnoreCase("proizvod")&& proizvod !=null){
proizvodLista.add(proizvod);
}
}
eventType = parser.next();
}
return proizvodLista;
}
private ArrayList<String> parsing (XmlPullParser parser) throws XmlPullParserException, IOException {
String print = null;
int eventType = parser.getEventType();
ArrayList<String> lista = new ArrayList<String>();
while(eventType != XmlPullParser.END_DOCUMENT){
String name = parser.getName();
if(name.equalsIgnoreCase("Prodavnice")){break;}
else{
if(eventType==XmlPullParser.START_TAG){
print = parser.nextText();
lista.add(print);
System.out.println(print);
}
}
eventType = parser.next();
}
return lista;
}
我的 XML 看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Proizvodi>
<Proizvod id="1">
<ime_proizvoda>Mleko</ime_proizvoda>
<vrsta_proizvoda>mlecni proizvod</vrsta_proizvoda>
<merna_jedinica>litar</merna_jedinica>
<Prodavnice>
<Prodavnica>1</Prodavnica>
<Prodavnica>3</Prodavnica>
<Prodavnica>4</Prodavnica>
</Prodavnice>
</Proizvod>
<Proizvod id="2">
<ime_proizvoda>Hleb</ime_proizvoda>
<vrsta_proizvoda>Pekarski proizvod</vrsta_proizvoda>
<merna_jedinica>gram</merna_jedinica>
<Prodavnice>
<Prodavnica>1</Prodavnica>
<Prodavnica>2</Prodavnica>
<Prodavnica>3</Prodavnica>
</Prodavnice>
</Proizvod>
<Proizvod id="3">
<ime_proizvoda>Suvi vrat</ime_proizvoda>
<vrsta_proizvoda>Mesna preradjevina</vrsta_proizvoda>
<merna_jedinica>gram</merna_jedinica>
<Prodavnice>
<Prodavnica>2</Prodavnica>
<Prodavnica>3</Prodavnica>
<Prodavnica>4</Prodavnica>
</Prodavnice>
</Proizvod>
<Proizvod id="4">
<ime_proizvoda>Pecenica</ime_proizvoda>
<vrsta_proizvoda>Mesna preradjevina</vrsta_proizvoda>
<merna_jedinica>100 grama</merna_jedinica>
<Prodavnice>
<Prodavnica>1</Prodavnica>
<Prodavnica>2</Prodavnica>
<Prodavnica>4</Prodavnica>
</Prodavnice>
</Proizvod>
关于Android Studio XmlPullParser 解析多重嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51912656/
在我的 XML 中,有一个带有属性的标记,该属性的名称中带有冒号: 我已经尝试了所有这些组合来尝试返回此属性的值: parser.getAttributeValue(null, "StUF:best
我正在解析的一些传入 RSS 中有一个松散的 html img 标签。意味着没有结束标记。我对传入的源的控制为零,所以我陷入了困境。无论如何我可以跳过这个标签吗?一切正常,直到我点击标签。 这是一个异
我使用 XMLPullParser 来解析 XML 文档,不幸的是,该文档包含一些特殊字符,例如: 或 &... 似乎这些字符中断了解析过程,并且仅显示这些字符之后的文本,而不显示之前的文本(如果特殊
我尝试使用以下代码读取我的应用程序创建的 XML 文件: XmlPullParser xpp = factory.newPullParser(); xpp.setInput(new StringRea
我正在使用 XMLPullParser 读取资源文件夹中的本地 XML 文件,教程的代码位于 android 开发者网站上: 链接:http://developer.android.com/refer
我正在制作一个应用程序,它将通过 xml 访问 eBay api 来搜索项目。我已按照指南 Android developer guide XMLPullParser 进行操作使用 Pull 解析器,
获取 XML 字符串的子节点的首选方法是什么? android 中似乎缺少使用 XmlPullParser 进行解析的良好示例。例如,如果我想解析这个: 81216 Lund C
我正在尝试阅读 BBC 足球 RSS。 下面是我试过的代码: URL url = new URL("http://feeds.bbci.co.uk/sport/0/football/r
我无法解决这个错误: org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://www.w3.org/2001/12/soa
我试图从我的 XML 中获取顶级元素的列表(包含重复的子元素) 示例 XML
我遇到的问题是我的应用程序接收到的 XML 数据有点损坏。因为我对此无能为力,所以我需要找到解决方法。 这是损坏部分的样子: I like cookies Do you like them too?
这是我的 xml 文件: John 1 1 Jordan 2 2 我的 Java parseXML() 方法如下
我在 XML 中有这样的东西: 2.204529 2015-12-27T12:35:45Z 我可以得到经纬度 XmlPullParser 解析器 =
我目前正在为一个 XML 文件创建一个解析器,并且一切正常,直到我添加一个额外的选项来检索链接。我有多个同名标签,我想要一个具有特定属性值的特定标签。 ... Venom 5dddd
考虑这个 XML。它描述了人员和他们拥有的汽车的列表。 Bob Toyota
我遇到了一个问题,在我的程序中,我遇到了 xmlpullparser 异常,我用眼镜检查了它,但由于我是 android 新手,我无法理解如何解决这个问题。我改了很多程序还是不行,有人帮我解决这个问题
几天以来,我在 Android 上使用 XMLPullParser 进行 XML 解析时遇到问题。我正在尝试解析这个: 我想获取图片网址,我成功了。但是,我无法检测到 END_TAG,而且我不知道该
我在 Android 中使用 XmlPullParser 解析一些文件除了文本中的一些特殊 HTML 字符外,一切正常,如下所示: í it should be í é i
我在 Android 文件系统中创建我的应用程序创建器 xml 文件。我需要使用 XmlPullParser 解析此文件,但编译时出现错误:“变量解析器可能尚未初始化”。我的代码: InputStre
我正在使用 Android 的 XmlPullParser 处理 OpenStreetMap (.osm) 文件。我遇到问题的部分是: 我需要在每个 way-
我是一名优秀的程序员,十分优秀!