我在这里XmlPullParser用来解析下面的文档.由于命名空间,它不起作用,我如何解析命名空间?
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(in, HTTP.UTF_8);
String namespace = xpp.getNamespace();
boolean inMessage = false;
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
//START TAGS
if(eventType == XmlPullParser.START_TAG) {
if(xpp.getName().equals(namespace+"resource")) {
httpCode = Integer.valueOf( xpp.getAttributeValue(null, "code").trim() );
type = xpp.getAttributeValue(null, "type").trim();
} else if(xpp.getName().equals(namespace+"message")) {
inMessage = true;
}
//TAG TEXT
} else if(eventType == XmlPullParser.TEXT) {
if(inMessage) {
message = xpp.getText().trim();
break; //CANCEL the iteration
}
} else if(eventType == …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下URL从Android v.17上的Monster解析RSS提要:
http://rss.jobsearch.monster.com/rssquery.ashx?q=java
为了得到我正在以下列方式使用HttpUrlConnection的内容
this.conn = (HttpURLConnection) url.openConnection();
this.conn.setConnectTimeout(5000);
this.conn.setReadTimeout(10000);
this.conn.setUseCaches(true);
conn.addRequestProperty("Content-Type", "text/xml; charset=utf-8");
is = new InputStreamReader(url.openStream());
Run Code Online (Sandbox Code Playgroud)
回到过去的是我所说的(我也证实了)一个合法的RSS
Cache-Control:private
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:5958
Content-Type:text/xml
Date:Wed, 06 Mar 2013 17:15:20 GMT
P3P:CP=CAO DSP COR CURa ADMa DEVa IVAo IVDo CONo HISa TELo PSAo PSDo DELa PUBi BUS LEG PHY ONL UNI PUR COM NAV INT DEM CNT STA HEA PRE GOV OTC
Server:Microsoft-IIS/7.5
Vary:Accept-Encoding
X-AspNet-Version:2.0.50727
X-Powered-By:ASP.NET
Run Code Online (Sandbox Code Playgroud)
它是这样开始的(如果要查看完整的XML,请单击上面的URL):
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Monster Job Search Results java</title>
<description>RSS Feed for …Run Code Online (Sandbox Code Playgroud) 我想使用Java XmlPullParser来解析XML文件,如下所示:
<start>
<tag1> text1 </tag1>
<tag2>
<tag3>text3</tag3>
<tag1>text4</tag1>
</tag2>
<tag4> text5</tag4>
</start>
Run Code Online (Sandbox Code Playgroud)
我只想<tag1> text1 </tag1>作为结果.我目前的方法产生<tag1> text1 </tag1>和<tag1>text4<tag1/>.我还能做什么?
编辑:
我正在获取String格式的XML .我想用它来解析它org.xmlpull.v1.XmlPullParser;.
我在Android文件系统中的app creater xml文件.我用XmlPullParser解析了这个文件,但是我得到错误编译:"变量解析器可能没有被初始化".我的代码:
InputStream inputStream = openFileInput("settings.xml");
XmlPullParser parser;
parser.setInput(inputStream, null);
Run Code Online (Sandbox Code Playgroud)
不知道,如何修复它.我使用Intellij IDEA12和Android 2.3 SDK.
我想解析一个XML字符串并将其显示在EditText中,但是我不能,我不明白可能是什么问题,请给我的代码一点帮助:
私有字符串xmlc = "<game><cel>5</cel><val>2</val></game>";
private CharSequence readXML(String xmlc2) throws XmlPullParserException {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xpp = factory.newPullParser();
String results = "";
String celda = "";
String valor = "";
xpp.setInput(new StringReader (xmlc2));
int eventType = xpp.getEventType();
String tagName = xpp.getName();
try {
while (eventType != XmlPullParser.END_DOCUMENT) {
if(tagName.equalsIgnoreCase("cell")){
celda = xpp.nextText();
} else if(tagName.equalsIgnoreCase("val")){
valor = xpp.nextText();
}
xpp.nextTag();
}
} catch (Exception e) {
Toast.makeText(this, "error!", Toast.LENGTH_LONG).show();
}
return celda;
}
Run Code Online (Sandbox Code Playgroud)
感谢您的建议,现在我可以发送字符串xml作为参数,并且可以解析,但是我不知道如何保存找到的2个值并在不同的EditText中显示每个值?
private EditText et02;
private EditText …Run Code Online (Sandbox Code Playgroud) 我正在尝试解析XML文档XmlPullParser但我有以下错误
Gradle: error: cannot find symbol class newInstance
创建 XmlPullParserFactory
XmlPullParserFactory ppf = new XmlPullParserFactory.newInstance();
如何配置Gradle才能XmlPullParser正确发现?
我正在尝试使用XMLPullParser来解析Android应用程序的一些XML.我在android-8 SDK的android.jar中进行classpathing.
唉,这段代码:
import android.util.Xml;
import org.xmlpull.v1.XmlPullParser;
class InstantiateXMLPullParser {
public static void main( String args[] ){
XmlPullParser xpp = Xml.newPullParser();
}
}
Run Code Online (Sandbox Code Playgroud)
失败并出现此错误:
Exception in thread "main" java.lang.RuntimeException: Stub!
at android.util.Xml.newPullParser(Xml.java:15)
at InstantiateXMLPullParser.main(InstantiateXMLPullParser.java:6)
Run Code Online (Sandbox Code Playgroud)
我怀疑我需要在某个地方指定一个实现 - 看起来曾几何时Android使用org.apache.harmony.xml.ExpatPullParser作为其默认的pull解析器,但似乎不再是这种情况.
我是一名新的Android程序员,最近,我在列表视图中使用pull解析器解析xml文件.在listview中解析时,我得到了这个异常.
09-13 05:37:00.401: E/AndroidRuntime(1167): FATAL EXCEPTION: main
09-13 05:37:00.401: E/AndroidRuntime(1167): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.simplexmlpullapp/com.example.simplexmlpullapp.MainActivity}: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)
那下一步该怎么办?这样就会删除此异常.我的代码是:
MainActivity.java
package com.example.simplexmlpullapp;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
ListView list;
String str;
ArrayList<Data> arrdata;
ArrayList<String> arrayofString, parcedCountry;
String textforinput = "<foo>Hello World!</foo>";
String parsedData = "";
XmlPullParser …Run Code Online (Sandbox Code Playgroud) 在我的 XML 中,有一个带有属性的标签,该属性的名称中带有冒号:
<GGS:bericht StUF:bestandsnaam="bestand.txt" >
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有这些组合来尝试返回此属性的值:
parser.getAttributeValue(null, "StUF:bestandsnaam");
parser.getAttributeValue("StUF", "bestandsnaam");
parser.getAttributeValue(null, "bestandsnaam");
parser.getAttributeValue("bestandsnaam", "StUF");
Run Code Online (Sandbox Code Playgroud)
...但它们都返回 null。
如果我手动删除属性名称的“StUF:”部分,它可以通过调用以下命令来工作:
parser.getAttributeValue(null, "bestandsnaam");
Run Code Online (Sandbox Code Playgroud)
那么如何获取这样一个属性的值呢?也就是说,不使用 getAttributeValue() 的 int 参数版本。