XML SAX解析犯规返回所需的结果
问题描述:
我有一个XML通过我的客户这样的规定:XML SAX解析犯规返回所需的结果
<?xml version='1.0' encoding='UTF-8' ?><quizzes updatetimestamp='2012-08-01 06:24'><quiz q_id='1'>
<q_name>Airplane!</q_name >
<q_appleid>com.patelware.moviesquiz.free</q_appleid>
<q_description>"Roger, Roger"</q_description>
<q_urlicon>http://www.inall3.com/king/icons/airplane_icon.png</q_urlicon>
<q_urlmainimg>http://www.inall3.com/king/icons/airplane_main.png</q_urlmainimg>
<q_urldb>http://www.inall3.com/king/dbs/airplane.xml</q_urldb>
<q_timesofupload>2011-05-01 00:00:00</q_timesofupload>
<q_priceindollar>0.00</q_priceindollar>
<q_cattype>Comedy</q_cattype>
<q_thighscore>http://www.inall3.com/hs/highscoreairplane.php?action=gethighscores&mode=1</q_thighscore>
<q_phighscore>http://www.inall3.com/hs/highscoreairplane.php?action=gethighscores&mode=2</q_phighscore>
</quiz>
但是当我解析它使用SAX解析器一切正常返回,但是当我尝试解析<q_thighscore>
或<q_phighscore>
其返回只是mode=1
和mode=2
,但我想要完整的链接进行分析,问题在哪里,我现在应该做什么?
答
我已经解决了它,我只是用,而不是SAX解析器拉解析器和它的工作:)
答
您可能想要使用sax默认处理程序。看看它是否有效。如果不需要扩展默认处理程序并覆盖此方法的行为以正确存储该值。 myURLString是您在扩展类中定义的变量。然后可以在endElement方法中访问这个变量。你在这里完全控制这个。
所以一种方法是扩展org.xml.sax.helpers.DefaultHandler;
和下面覆盖
protected String myValueString;
@Override
public void characters(char[] ch, int start, int length) throws SAXException
{
super.characters(ch, start, length); // deal with escape values here.
myValueString = ...
}
then inside endElement(){
check if matches your type and if so use myValueString;
我认为它有一些做的事实,''是唯一包含查询字符串的网址。或分号。 – 2012-08-02 18:35:28
我该怎么办? – Reyjohn 2012-08-02 18:36:14
通过一些文档或东西看看?我很抱歉,我没有太多帮助,我不使用解析器。 – 2012-08-02 18:40:03