问题标签 [android-xmlpullparser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
158 浏览

android - Android XmlPullParser:读取 RSS Feed 中的命名空间

我正在解析一个看起来像这样的 XML 提要:

我想做的一件事是通过 URL 获取所有命名空间并获取关联的前缀以供以后解析。例如,如果我知道 iTunes DTD 位于:http ://www.itunes.com/dtds/podcast-1.0.dtd我想获取相关的前缀。这是我想用来执行此操作的一些代码:

但是,此处显示的唯一属性是 rss“版本”属性(getAttributeCount 返回 1 以及“版本”和“2.0”的名称和值)。有没有办法获取命名空间?

0 投票
0 回答
40 浏览

android - 如何获取动态 xml 文件?这是最新的实例,而不是最初加载的 xml 文件

我使用这些代码行来提取和解析 xml 布局。

它可以解析 xml 中的所有标签和属性,问题是它只能提取第一个加载的 xml 版本。

当我动态更改属性myButton.setText("new_name")时,解析器总是返回最早的按钮名称。同样的事情,如果在加载后修改了任何内容,xml 中的其他内容都不会改变。

当我动态设置可见性时,这是原始xml文件中不存在的属性,它只提取最早的xml而没有新的属性。我希望它也能被展示出来。

我的代码或我的方法是错误的吗?或者解析动态xml是不可能的?如果是这样,是否有另一种方法来获取动态布局?

0 投票
2 回答
416 浏览

android - Parse all XML text using XMLPullParser

I have a question that is similar to [this one here][1] I have read tutorials about XMLPullParser and do not seem to get this one.

I have an XML tag I want to parse using XMLPullParser

I want to get the result ": outcome result." Because I am reading this XML from an online base. It may change. For instance :

The question is how do I parse and get all the text in the tag "dt" irrespective of the name of the tags in it?

This is what I have tried but it is not working.

0 投票
2 回答
113 浏览

android - 使用 XmlPullParser 解析通道节点

我正在尝试channel从 RSS 提要解析节点,但我不断收到此错误parser.nextText()

问题似乎parser.getEventType()是 3 (END_TAG),当它应该是 2 (START_TAG)

喂养:

代码:

0 投票
2 回答
894 浏览

java - Android Studio Java XmlPullParser 如何仅获取某些标记值

我在解析一些 xml 标签时遇到问题。我对 Android 开发非常陌生,但我仍在努力学习基础知识。

如果这篇文章有点难以阅读,我很抱歉。

我想阅读我下载的以下 XML 文件:

我用我的 XmlPullParser 类阅读它:

我只想解析name每个标签内的track标签。

所以基本上我想将所有轨道名称(其中 8 个)解析为 ListView,但是当我使用currentXmlAlbumTrack.setTrackName(curText);它时,它会尝试输出 XML 文件中的每个名称标签,如下所示:

有没有办法在不完全重写解析器的情况下避免这种情况?

0 投票
1 回答
386 浏览

java - XmlResourceParser.getText() 在单引号字符后丢弃文本,忽略双引号

目前正在尝试实现我的 iOS 应用程序的 Android 版本并在解析 XML 时遇到一些问题,其中文本包含单引号或双引号字符(它是外语的字典应用程序)。

我的应用程序的所有数据都是从 XML 资源文件加载的。这是该文件的示例:

XmlResourceParser我通过调用检索:

这是我的解析代码:

解析文本时,XmlResourceParser'getText()方法会删除 之后的所有内容,'并在下一个节点内重新拾取文本。此外,它只是忽略了双引号。我的结果如下所示:

我已经搜索了文档,似乎在文档中找不到任何提及处理单引号和双引号的内容......我唯一能想到的是XmlResourceParser不喜欢文字字符,而是期待实体代码,但我尝试将它们换掉,但它仍然忽略它们。

0 投票
1 回答
663 浏览

android - XMLPullParser 未找到 START_TAGs

我正在尝试从以下 URL 解析 XML 数据

交通苏格兰当前事件

现在,我有一个应用程序,在按下按钮时,它会获取 XML 数据,尝试解析它,然后只显示原始 xml 数据,因为我目前无法解析任何内容。

据我所知,下面的代码应该可以工作,我不知道为什么它不工作。它似乎直接从 START_DOCUMENT (eventType 0) 到 END_DOCUMENT (eventType 1)。

当我运行上面的代码时,我会记录以下内容:

02-21 09:17:52.201 3258-3572/com.example.chdick.pullparsertest2 E/MyTag:在运行中
02-21 09:17:52.232 3258-3572/com.example.chdick.pullparsertest2 E/MyTag:在尝试中
02-21 09:18:00.092 3258-3572/com.example.chdick.pullparsertest2 E/MyTag: 在
02-21 09:18:00.092 3258-3572/com.example.chdick.pullparsertest2 E/MyTag: 0
02 -21 09:18:00.092 3258-3572/com.example.chdick.pullparsertest2 E/MyTag: Start Doc
02-21 09:18:00.092 3258-3572/com.example.chdick.pullparsertest2 E/MyTag: xpp.next
02-21 09:18:00.092 3258-3572/com.example.chdick.pullparsertest2 E/MyTag: ET 在下一个之后: 1

0 投票
2 回答
111 浏览

android - Android res/xml 无法以任何方式转义撇号

我有一些 XML 文件,res/xml我正在尝试像通常在 XML 中所做的那样转义字符。我几乎尝试了所有可能的方法:

它们都不起作用,当我用 解析文件时XmlPullParser,我总是只得到部分文本:Okay I,在撇号所在的位置拆分。

按照这里parser.setFeature(Xml.FEATURE_RELAXED, true)的建议,我也尝试过,但没有成功。

是否有任何理由或任何解决此行为的理由?

编辑:经过更多测试,看起来这个问题只发生在撇号上,没有其他转义字符,如&.

0 投票
1 回答
275 浏览

android - 通过下载的 xml 字符串膨胀和渲染 UI 视图

我有兴趣从服务器下载 UI 视图的 xml 布局并将其作为 xml 字符串膨胀。
我在文档中看到的是:

因此,目前无法在运行时在纯 XML 文件上使用带有 XmlPullParser 的 LayoutInflater;它仅适用于从已编译资源(R.something 文件)返回的 XmlPullParser。

我不太了解突出显示的部分(我的重点)。
如果我有一些“虚拟” xml 文件来获取XmlPullParser我可以膨胀我的 xml 字符串吗?

一般来说,如果这是不可能的,还有什么替代方案?
我的意思是除此之外不需要像 react native 那样的巨大学习曲线

0 投票
0 回答
56 浏览

android - XmlResourceParser 在调用 next() 后停留在 START_DOCUMENT 状态

以下代码在第 4 行抛出异常

添加调试打印语句后,发现解析器在第一次调用后仍处于START_DOCUMENTnext()状态。添加另一个调用来next()解决问题。根据官方 Android 参考资料,这种行为是错误的,因为它

START_DOCUMENT

表示解析器位于文档的最开头,尚未读取任何内容。这种事件类型只能通过在第一次调用 next()、nextToken 或 nextTag() 之前调用 getEvent() 来观察。