Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 带rdf的Android-sax_Xml_Android_Rdf_Sax - Fatal编程技术网

Xml 带rdf的Android-sax

Xml 带rdf的Android-sax,xml,android,rdf,sax,Xml,Android,Rdf,Sax,我尝试使用android.sax和android.utils.Xml方法解析rdf文件。我的解析器不输出任何内容,也不发送任何异常 RDF文件: <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss1full.xsl"?> <?xml-stylesheet type="text/css" media="sc

我尝试使用android.sax和android.utils.Xml方法解析rdf文件。我的解析器不输出任何内容,也不发送任何异常

RDF文件:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss1full.xsl"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?>
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns="http://purl.org/rss/1.0/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
   <channel rdf:about="http://www.olympique-et-lyonnais.com/">
     <title>OL Blog | Olympique et Lyonnais</title>
     <description />
     <link>http://www.olympique-et-lyonnais.com/</link>
     <dc:language>fr</dc:language>
     <dc:creator />
     <dc:rights />
     <dc:date>2010-06-01T23:23:50+02:00</dc:date>
     <admin:generatorAgent rdf:resource="http://www.dotclear.net/" />

     <sy:updatePeriod>daily</sy:updatePeriod>
     <sy:updateFrequency>1</sy:updateFrequency>
     <sy:updateBase>2010-06-01T23:23:50+02:00</sy:updateBase>

     <items>
     ...
     </items>
   <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rdf+xml" href="http://feeds.feedburner.com/oetl" /><feedburner:info uri="oetl" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
   </channel>

   <item rdf:about="http://www.olympique-et-lyonnais.com/ligue-1/la-toul-ce-tlier,4513.html">
     <title>La Toul, ce tôlier</title>
     <link>http://feedproxy.google.com/~r/oetl/~3/RycUlTDp3eY/la-toul-ce-tlier,4513.html</link>
     <dc:date>2010-06-01T23:23:50+02:00</dc:date>
     <dc:language>fr</dc:language>
     <dc:creator>Aurelien</dc:creator>
     <dc:subject>Ligue 1</dc:subject>
     <description>Décidément très bavard ces derniers temps notamment dans la presse, Jean-Michel Aulas n'a pas seulement livré le plan de recrutement de l'OL, il a aussi parlé de certains joueurs actuellement en place au club et de leur avenir. Le président est notamment...</description>
     <content:encoded><![CDATA[D&eacute;cid&eacute;ment tr&egrave;s bavard ces derniers temps notamment dans la presse, Jean-Michel Aulas n'a pas seulement livr&eacute; le plan de recrutement de l'OL, il a aussi parl&eacute; de certains joueurs actuellement en place au club et de leur avenir. Le pr&eacute;sident est notamment...<img src="http://feeds.feedburner.com/~r/oetl/~4/RycUlTDp3eY" height="1" width="1"/>]]></content:encoded>
   <feedburner:origLink>http://www.olympique-et-lyonnais.com/ligue-1/la-toul-ce-tlier,4513.html</feedburner:origLink></item>
...
</rdf:RDF>

有人能告诉我我做错了什么吗?

您的代码看起来很奇怪,为什么不使用普通的SaxParser


...

项元素不在rdf:命名空间中,相关命令应为:
item=root.getChild(“,item)

为什么不使用任何公共提要java解析器


顺便说一句,代码中的RSS_NAMESPACE变量与文件中使用的名称空间不匹配:默认名称空间并不意味着空名称空间。

我使用它是因为它是本机android方法,不需要创建处理程序。这在RSS2.0和Atom中运行良好。如果您要解析任意RDF,则强烈建议使用RDF/XML解析器(而不是通用XML解析器)。虽然这个示例类似于RSS(因此XML的结构比任意RDF的结构更可预测),但通过XML解析器对其进行解析可能很好。
static final String RDF_NAMESPACE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
static final String ATOM_NAMESPACE = "http://www.w3.org/2005/Atom";
static final String RSS_NAMESPACE = "";

   try{
    RootElement root;
    Element itemlist;
    Element item;
    String namespace;
    if(feedsTypes[i].equals("RDF")){
     Log.i(TAG, "RDF feed");
     namespace = RDF_NAMESPACE;
     root = new RootElement(RDF_NAMESPACE, feedsTypes[i]);
     item = root.getChild(RDF_NAMESPACE, ITEM);
    }
    else{
     Log.i(TAG, "RSS feed");
     namespace = RSS_NAMESPACE;
     root = new RootElement(RSS_NAMESPACE, feedsTypes[i]);
     itemlist = root.getChild(RSS_NAMESPACE, CHANNEL);
     item = itemlist.getChild(RSS_NAMESPACE, ITEM);
    }
    item.setStartElementListener(new StartElementListener(){
     @Override
     public void start(Attributes attributes) {
      Log.i(TAG, "item///");
     }
    });
    item.setEndElementListener(new EndElementListener(){
     public void end() {
      Log.i(TAG, "///item");
      messages.add(currentMessage.copy());
     }
    });
    item.getChild(namespace, TITLE).setEndTextElementListener(new EndTextElementListener(){
     public void end(String body) {
      Log.i(TAG, body);
      currentMessage.setTitle(body);
     }
    });
    Xml.parse(this.getInputStream(), Xml.Encoding.UTF_8, root.getContentHandler());
   }
   catch(Exception e){
    Log.w(TAG, e.getMessage());
   }