Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.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
Android-Java通过Web解析XML_Java_Android_Xml - Fatal编程技术网

Android-Java通过Web解析XML

Android-Java通过Web解析XML,java,android,xml,Java,Android,Xml,我正在尝试通过XML解析数据,它正在工作,但唯一的问题是它返回标记的最后一行。我使用歌词维基只是为了测试一下 例如,在他们的网站上发布的“艺术家蛋糕”和“歌曲一角”的例子,我得到的回报值是“当一个皱巴巴的[…]” 我的代码如下所示: 公共类ExampleHandler扩展了DefaultHandler{ // =========================================================== // Fields // ========

我正在尝试通过XML解析数据,它正在工作,但唯一的问题是它返回标记的最后一行。我使用歌词维基只是为了测试一下

例如,在他们的网站上发布的“艺术家蛋糕”和“歌曲一角”的例子,我得到的回报值是“当一个皱巴巴的[…]”

我的代码如下所示:

公共类ExampleHandler扩展了DefaultHandler{

    // ===========================================================
    // 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;
}