这是对这个问题的后续问题:
将Android支持库更新到23.2.0会导致错误:XmlPullParserException二进制XML文件行#17 <vector>标记需要viewportWidth> 0
我还将支持库更新到23.2并开始收到错误:
XmlPullParserException Binary XML file line #17<vector> tag requires viewportWidth > 0
Run Code Online (Sandbox Code Playgroud)
这个问题解决了Android Studio和Gradle的问题.在没有Gradle的情况下使用Eclipse时如何解决这个问题?
我有一个xml文件,我展示了它的一小部分,以显示我想要的内容
<media:content medium="image" url="http://msnbcmedia.msn.com/j/MSNBC/Components/Photo/_new/111010-romney-health-4p.thumb.jpg">
<media:credit role="provider">Getty Images file</media:credit>
<media:copyright>2010 Getty Images</media:copyright>
<media:text><![CDATA[<p><a href="http://www.msnbc.msn.com/id/44854320/ns/politics-decision_2012/"><img align="left" border="0" src="http://msnbcmedia.msn.com/j/MSNBC/Components/Photo/_new/111010-romney-health-4p.thumb.jpg" alt="Mitt Romney speaks at the National Press Club March 5, 2010 in Washington, D.C." style="margin:0 5px 5px 0" /></a></p><br clear="all" />]]></media:text>
</media:content>
Run Code Online (Sandbox Code Playgroud)
现在我想检索URL选项卡.我是怎么做到的
我做了以下代码
if(parser.getName().equalsIgnoreCase("media:content"))
{
Log.d("media count-->",parser.getAttributeCount()+"");
}
Run Code Online (Sandbox Code Playgroud)
所以这给了我-1.
嘿,如果有人给我提示我如何获得图像网址.
我想知道在Android中编写和解析XML文件的最简单方法是什么.
我的要求很简单.示例文件类似于:
<Item ID="1" price="$100" Qty="20" />
Run Code Online (Sandbox Code Playgroud)
我只想通过ID检索项目并读取价格和数量.
我指的是使用XmlResourceParser来解析自定义编译的XML,但是想知道是否有一种轻量级的方法来做一些微不足道的事情(仍然使用标签).
我有这个XML:
<menu>
<day name="monday">
<meal name="BREAKFAST">
<counter name="Bread">
<dish>
<name>Plain Bagel</name>
</dish>
<counter/>
<meal/>
<day/>
<day name="tuesday">
<meal name="LUNCH">
<counter name="Other">
<dish>
<name>Cheese Bagel</name>
</dish>
<counter/>
<meal/>
<day/>
<menu/>
Run Code Online (Sandbox Code Playgroud)
如果day标签的属性等于星期一,那么现在我正在尝试这样做.然后饭标属性等于BREAKFAST,然后我想得到计数器的属性."面包".
我已经设置了xml pull解析器,但我正在努力获得这个值.这是我尝试过的,我现在看到它不能也不会起作用......所以任何有关如何设置它的帮助都会很棒.
while (eventType != XmlResourceParser.END_DOCUMENT) {
String tagName = xmlData.getName();
switch (eventType) {
case XmlResourceParser.START_TAG:
if (tagName.equalsIgnoreCase("day")) {
if (xmlData.getAttributeValue(null, "name").equalsIgnoreCase(day)) {
if (tagName.equalsIgnoreCase("meal")) {
mealArray.add(xmlData.getAttributeValue(null, "name"));
Log.i(TAG, xmlData.getAttributeValue(null, "name"));
}
}
}
break;
case XmlResourceParser.TEXT:
break;
case XmlPullParser.END_TAG:
break;
}
eventType = xmlData.next();
}
Run Code Online (Sandbox Code Playgroud) 这是我使用OkHttp的Async Get的OkHttp Post Form参数方法
public Call postGetCountries(Callback callback) {
RequestBody body = new FormEncodingBuilder()
.add("op", "op")
.build();
Log.d(TAG_PARAMS, "op=sgetcountrylist, app_type=1");
Request request = new Request.Builder()
.url(GATEWAY_URL)
.post(body)
.build();
Call call = CLIENT.newCall(request);
call.enqueue(callback);
return call;
}
Run Code Online (Sandbox Code Playgroud)
这是我的自定义回调.
private class GetCountriesCallback implements Callback {
@Override
public void onFailure(Request request, IOException e) {
Log.e("OkHttp", e.getMessage());
}
@Override
public void onResponse(Response response) throws IOException {
Log.d("PASSED", "PASS");
Log.d(Connection.TAG_RETURN, response.body().string());
try {
InputStream is = response.body().byteStream();
List test = connectionParser.parse(is, "op");
} catch (XmlPullParserException …Run Code Online (Sandbox Code Playgroud) 我在解析XML时遇到了麻烦,我尝试了很多东西.
我有像这样的xml.
<question id="1" text="Zodiac Sign" >
<option id="1" >Aries</option>
<option id="2" >Taurus</option>
<option id="3" >Gemini</option>
<option id="4" >Cancer</option>
<option id="5" >Leo</option>
<option id="6" >Virgo</option>
<option id="7" >Libra</option>
<option id="8" >Scarpio</option>
<option id="9" >Sagitarius</option>
<option id="10" >Capricorn</option>
<option id="11" >Acqauarius</option>
</question><question id="2" text="Home Town" >
</question><question id="3" text="Current Locaion" >
</question><question id="4" text="Nationality" ></question>
<question id="5" text="Height" ></question>
<question id="6" text="Build(optional)" >
<option id="13" >Slim</option>
<option id="14" >Athletic</option>
<option id="15" >Few Pounds Extra</option>
<option id="16" >Obese</option>
</question><question id="7" text="Hair Color" …Run Code Online (Sandbox Code Playgroud) 我的目标是从url下载xml文件并解析它.对于实验,我使用下一个xml文件:https: //www.dropbox.com/s/l5qtpcrryuistpk/Adtest.xml
<?xml version="1.0" encoding="UTF-8">
<adsettings>
<adnetwork>AdMob</adnetwork>
<publisherid>12345</publisherid>
</adsettings>
Run Code Online (Sandbox Code Playgroud)
首先,我使用以下代码下载它:
URL xmlUrl = new URL(XML_SETTINGS_URL);
HttpURLConnection urlConnection = (HttpURLConnection) xmlUrl.openConnection();
urlConnection.connect();
FileOutputStream fileOutputStream = adContext.openFileOutput(SETTINGS_FILENAME,
adContext.MODE_PRIVATE);
InputStream stream = urlConnection.getInputStream();
byte[] buffer = new byte[1024];
while (stream.read(buffer) > -1) {
fileOutputStream.write(buffer);
}
fileOutputStream.close();
urlConnection.disconnect();
Run Code Online (Sandbox Code Playgroud)
接下来,我试图解析它:
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
File file = adContext.getFileStreamPath(SETTINGS_FILENAME);
FileReader fileReader = new FileReader(file);
System.out.println(fileReader);
parser.setInput(fileReader);
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
Log.d(TAG, …Run Code Online (Sandbox Code Playgroud)