gpt4 book ai didi

android - XmlPullParser 中的 next() 和 nextTag() 有什么区别?

转载 作者:行者123 更新时间:2023-11-30 01:43:14 24 4
gpt4 key购买 nike

我知道 nextTag() 转到下一个标签,可以是开始或结束标签。接下来()呢?它是否转到下一个文本/标签取决于它是什么?

例如,如果我们有 xml:

<summary type="html">
<p>I have an Application that requires a data file...</p>

</summary>

假设解析器当前位于摘要开始标记处,执行 next() 是否立即移动到 p 标记或之后的文本?我查看了来自 Google 站点的代码,它是这样做的:

private String readSummary(XmlPullParser parser) throws IOException, XmlPullParserException {
parser.require(XmlPullParser.START_TAG, ns, "summary");
String summary = readText(parser);
parser.require(XmlPullParser.END_TAG, ns, "summary");
return summary;
}

// For the tags title and summary, extracts their text values.
private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
String result = "";
if (parser.next() == XmlPullParser.TEXT) {
result = parser.getText();
parser.nextTag();
}
return result;
}

它只从摘要标签开始调用 1 next() 并从中提取文本。它不应该调用 next() 两次以获取文本,因为这样做一次只到达 p 标记吗?

谢谢

最佳答案

next() 和 nextTag() 有什么区别:

假设您在next() 方法中编写了一些代码。当 nextTag() 方法被执行时,它首先调用 next() 方法,然后如果元素包含 START_TAGEND_TAG 然后它返回适当的事件,否则它通过异常。

来自官方文档:

下一步()

获取下一个解析事件 - 元素内容将被合并,并且必须为整个元素内容返回一个 TEXT 事件(评论和处理指令将被忽略,实体引用必须扩展,否则如果实体引用必须抛出异常无法展开)。

nextTag()

如果事件是 START_TAG 或 END_TAG,则调用 next() 并返回事件,否则抛出异常。

关于android - XmlPullParser 中的 next() 和 nextTag() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34137575/

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