在Java中解析XML时从字符串中删除无效字符

在Java中解析XML时从字符串中删除无效字符,java,android,xml,parsing,Java,Android,Xml,Parsing,我一直在谷歌上搜索和阅读,但没有任何效果。我对XML提要中的字符有问题。我将每个标记的值保存在一个字符串中,但是当 发生时,它只是停止。我只得到标签中的4-5个单词 那么,有谁能帮我找到一种方法来移除它吗?或者XML提要中标记中的文本对于字符串来说太长了 谢谢 示例代码: public void characters(char[] ch, int start, int length) throws SAXException { if (currentEle

我一直在谷歌上搜索和阅读,但没有任何效果。我对XML提要中的字符有问题。我将每个标记的值保存在一个字符串中,但是当

发生时,它只是停止。我只得到标签中的4-5个单词

那么,有谁能帮我找到一种方法来移除它吗?或者XML提要中标记中的文本对于字符串来说太长了

谢谢

示例代码:

    public void characters(char[] ch, int start, int length)
        throws SAXException {

    if (currentElement) {
        currentValue = new String(ch, start, length);
        currentElement = false;
    }

}

public void endElement(String uri, String localName, String qName)
        throws SAXException {

    currentElement = false;

    /** set value */ 
    if (localName.equalsIgnoreCase("title"))
        sitesList.setTitle(currentValue);
    else if (localName.equalsIgnoreCase("id"))
        sitesList.setId(currentValue);
    else if(localName.equalsIgnoreCase("description"))
        sitesList.setDescription(currentValue);
}

description标签中的文本很长,但我只得到

字符开始出现。

您正在使用SAXparser来解析XML字符串

当只读取一个XML元素时,可以多次调用
characters()
-方法。当它发现类似于
blablabla&39;布拉布拉。

解决方案是使用a并在
characters()
-方法中附加读取的字符,然后在
endElement()
-方法中重置
StringBuilder

private class Handler extends DefaultHandler{

    private StringBuilder temp_val;

    public Handler(){
        this.temp_val = new StringBuilder();
    }

    public void characters(char[] ch, int start, int length){
        temp_val.append(ch, start, length);
    }

    public void endElement(String uri, String localName, String qName){
        System.out.println("Output: "+temp_val.toString());
        // ... Do your stuff
        temp_val.setLength(0); // Reset the StringBuilder
    }

}

鉴于此XML文件,上述代码适用于我:

<?xml version="1.0" encoding="iso-8859-1" ?>
<test>This is some &#13; example-text.</test>

这是一些
;示例文本。
输出为:

输出:这是一些
示例文本


您能否显示代码的相关部分,以及您看到的无效字符类型?因此,当我设置值时,我应该使用temp_val.toString()?在
endElement()
-方法中设置您的值,并在结束时重置
StringBuilder
。请更具体地说明“不工作”。您的意思是设置值,如temp_val.toString()中的值?我确实做到了,但我仍然无法从我的描述标签中获取所有文本。当它碰到我在帖子中抱怨的字符时,它就会停止。这可能与XML的编码有关吗?我的是UTF-8I,它和你在帖子中做的一模一样,不会在讨厌的字符后面添加任何文本。