java-使用SAX解析器解析自关闭XML标签很麻烦
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用SAX解析器解析自关闭XML标签很麻烦,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2237字,纯文字阅读大概需要4分钟。
内容图文
我在使用SAX解析自关闭XML标记时遇到麻烦.我正在尝试从Google Base API中提取链接标记.我在解析常规标记方面取得了合理的成功.
这是xml的代码段
<entry>
<id>http://www.google.com/base/feeds/snippets/15802191394735287303</id>
<published>2010-04-05T11:00:00.000Z</published>
<updated>2010-04-24T19:00:07.000Z</updated>
<category scheme='http://base.google.com/categories/itemtypes' term='Products'/>
<title type='text'>En-el1 Li-ion Battery+charger For Nikon Digital Camera</title>
<link rel='alternate' type='text/html' href='http://rover.ebay.com/rover/1/711-67261-24966-0/2?ipn=psmain&icep_vectorid=263602&kwid=1&mtid=691&crlp=1_263602&icep_item_id=170468125748&itemid=170468125748'/>
.
.
等等
我可以解析更新和已发布标签,但不能解析链接和类别标签.
这是我的startElement和endElement覆盖
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if (qName.equals("title") && xmlTags.peek().equals("entry")) {
insideEntryTitle = true;
}
xmlTags.push(qName);
}
public void endElement(String uri, String localName, String qName)
throws SAXException {
// If a "title" element is closed, we start a new line, to prepare
// printing the new title.
xmlTags.pop();
if (insideEntryTitle) {
insideEntryTitle = false;
System.out.println();
}
}
xmltags的声明.
private Stack<String> xmlTags = new Stack<String>();
有帮助吗?
这是我在这里的第一篇文章.我希望我遵守发布规则!谢谢你们.
纠正:endElement被调用.字符没有.
public void characters(char[] ch, int start, int length) throws SAXException
{
if (insideEntryTitle)
{
String url= new String(ch, start, length);
System.out.println("url="+title);
i++;
}
}
解决方法:
字符的作用是在XML元素标签之间传递内容(以块为单位,每个方法调用一个块).所以
如果您有一个XML元素,例如
<Foo someattrib=“” />
字符就不会被调用,因为解析器没有内容可以告诉您.
如果您依赖于字符方法,即使标记为空,也必须在此处调用它,那么您做错了.
字符方法将元素文本添加到缓冲区中,但是startElement和endElement需要负责清除和读取缓冲区,因为endElement是您知道已收到所有元素文本的地方.如果没有要阅读的字符,则不调用字符应该没问题.
因为您可能还没有任何一个字符调用包含所有内容,所以该方法中不能包含任何业务逻辑.如果有,那么您的代码有时将无法工作.
有关如何实现字符的信息,请参见this example.如果要读取属性值,请参见this example.
内容总结
以上是互联网集市为您收集整理的java-使用SAX解析器解析自关闭XML标签很麻烦全部内容,希望文章能够帮你解决java-使用SAX解析器解析自关闭XML标签很麻烦所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。