Android-Java通过Web解析XML
我正在尝试通过XML解析数据,它正在工作,但唯一的问题是它返回标记的最后一行。我使用歌词维基只是为了测试一下 例如,在他们的网站上发布的“艺术家蛋糕”和“歌曲一角”的例子,我得到的回报值是“当一个皱巴巴的[…]” 我的代码如下所示: 公共类ExampleHandler扩展了DefaultHandler{Android-Java通过Web解析XML,java,android,xml,Java,Android,Xml,我正在尝试通过XML解析数据,它正在工作,但唯一的问题是它返回标记的最后一行。我使用歌词维基只是为了测试一下 例如,在他们的网站上发布的“艺术家蛋糕”和“歌曲一角”的例子,我得到的回报值是“当一个皱巴巴的[…]” 我的代码如下所示: 公共类ExampleHandler扩展了DefaultHandler{ // =========================================================== // Fields // ========
// ===========================================================
// Fields
// ===========================================================
private boolean in_outertag = false;
private boolean in_innertag = false;
private boolean in_mytag = false;
private ParsedExampleDataSet myParsedExampleDataSet = new ParsedExampleDataSet();
// ===========================================================
// Getter & Setter
// ===========================================================
public ParsedExampleDataSet getParsedData() {
return this.myParsedExampleDataSet;
}
// ===========================================================
// Methods
// ===========================================================
@Override
public void startDocument() throws SAXException {
this.myParsedExampleDataSet = new ParsedExampleDataSet();
}
@Override
public void endDocument() throws SAXException {
// Nothing to do
}
/** Gets be called on opening tags like:
* <tag>
* Can provide attribute(s), when xml was like:
* <tag attribute="attributeValue">*/
@Override
public void startElement(String namespaceURI, String localName,
String qName, Attributes atts) throws SAXException {
if (localName.equals("LyricsResult")) {
this.in_outertag = true;
}else if (localName.equals("lyrics")) {
this.in_mytag = true;
}
}
/** Gets be called on closing tags like:
* </tag> */
@Override
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
if (localName.equals("LyricsResult")) {
this.in_outertag = false;
}else if (localName.equals("lyrics")) {
this.in_mytag = false;
}
}
/** Gets be called on the following structure:
* <tag>characters</tag> */
public void characters(char ch[], int start, int length) {
if(this.in_mytag){
myParsedExampleDataSet.setExtractedString(new String(ch, start, length));
}
}修复了将字符放入stringbuilder所需的问题
public String getExtractedString() {
return extractedString;
}
public void setExtractedString(String extractedString) {
this.extractedString = extractedString;
}
public int getExtractedInt() {
return extractedInt;
}
public void setExtractedInt(int extractedInt) {
this.extractedInt = extractedInt;
}
public String toString(){
return this.extractedString;
}