gpt4 book ai didi

java - XmlPullParser 未关闭标记忽略

转载 作者:行者123 更新时间:2023-11-29 21:17:19 26 4
gpt4 key购买 nike

我遇到的问题是我的应用程序接收到的 XML 数据有点损坏。因为我对此无能为力,所以我需要找到解决方法。

这是损坏部分的样子:

<line> I like cookies <u>Do you like them too?</u> </line>

我有什么办法可以强制 XmlPullParser 忽略 u 和/u?

现在我能够读取 LINE 字符串的第一部分,但我还需要它的其余部分。

或者有什么方法可以将 u &/u 读取为普通字符串而不是标签?

感谢您的帮助!

最佳答案

您可以在解析中使用一些逻辑来通过忽略不需要的标记来从 XML 中提取测试。对于您提供的示例,您可以执行如下操作以捕获 line 标记之间的所有文本,而不管其中包含什么标记:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
boolean inLineTag = false;
StringBuilder strBldr = new StringBuilder();
xpp.setInput(new StringReader(
"<line> I like cookies <u>Do you like them too?</u> </line>"));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
if(("line").equals(xpp.getName())){
inLineTag = true;
}
} else if (eventType == XmlPullParser.END_TAG) {
if(("line").equals(xpp.getName())){
inLineTag = false;
}
} else if (eventType == XmlPullParser.TEXT) {
if (inLineTag) {
strBldr.append(xpp.getText());
}
}
eventType = xpp.next();
}

System.out.println("Text " + strBldr.toString());
}

希望对您有所帮助!

关于java - XmlPullParser 未关闭标记忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21113736/

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