Java 在android中进行XMl解析时无法获取值
这是XML解析器类:Java 在android中进行XMl解析时无法获取值,java,android,Java,Android,这是XML解析器类: public class XMLParser { // constructor public XMLParser() { } /** * Getting XML from URL making HTTP request * * @param url * string * */ public String getXmlFromUrl(String url)
public class XMLParser {
// constructor
public XMLParser() {
}
/**
* Getting XML from URL making HTTP request
*
* @param url
* string
* */
public String getXmlFromUrl(String url)
{
String xml = null;
try
{
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(url);
HttpResponse response = httpClient.execute(httpGet, localContext);
HttpEntity entity = response.getEntity();
xml = getASCIIContentFromEntity(entity);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// return XML
return xml;
}
// Parsing the XML content and retrieve DOM element in the XML.
private String getASCIIContentFromEntity(HttpEntity entity)
throws IllegalStateException, IOException {
InputStream in = entity.getContent();
StringBuffer out = new StringBuffer();
int n = 1;
while (n > 0) {
byte[] b = new byte[4096];
n = in.read(b);
if (n > 0)
out.append(new String(b, 0, n));
}
return out.toString();
}
public Document getDomElement(String xml)
{
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xml));
doc = db.parse(is);
} catch (ParserConfigurationException e) {
Log.e("Error: ", e.getMessage());
return null;
} catch (SAXException e) {
Log.e("Error", e.getMessage());
return null;
} catch (IOException e) {
Log.e("Error", e.getMessage());
return null;
}
return doc;
}
/**
* Getting node value
*
* @param elem
* element
*/
public final String getElementValue(Node elem) {
Node child;
if (elem != null) {
if (elem.hasChildNodes()) {
for (child = elem.getFirstChild(); child != null; child = child
.getNextSibling()) {
if (child.getNodeType() == Node.TEXT_NODE) {
return child.getNodeValue();
}
}
}
}
return "";
}
// Retrieve each element child element value by using node name of element.
public String getValue(Element item, String str) {
NodeList n = item.getElementsByTagName(str);
return this.getElementValue(n.item(0));
}
}
我要在其中获取值的此类:
String resultFromGetXmlFromUrl = parser.getXmlFromUrl(URL);
String xml = Html.fromHtml(resultFromGetXmlFromUrl).toString();
Document doc = parser.getDomElement(xml); // getting DOM element
String value = null;
NodeList list=doc.getElementsByTagName("Table");
for (int temp = 0; temp < list.getLength(); temp++)
{
Element e = (Element) list.item(temp);
String Value=parser.getValue(e, "code");
}
我正在尝试获取值代码:91getValue()的第一个参数需要
org.w3c.dom.Element
类型元素,但您的第一个参数类型是android.renderscript.Element
,请将类型转换更改为:
org.w3c.dom.Element e = (org.w3c.dom.Element) list.item(temp);
什么是错误描述?类型XMLParser中的方法getValue(org.w3c.dom.Element,java.lang.String)不适用于参数(android.renderscript.Element,java.lang.String)Eror即将到来,我无法修复它,请帮助hi@Coder请告诉我您有什么解决方案您需要通过org.w3c.dom.Element-type-Element而不是android.renderscript.Element.tHAYOU非常亲爱的
org.w3c.dom.Element e = (org.w3c.dom.Element) list.item(temp);