加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 02:27:44 所属栏目:Java 来源:网络整理
导读:我一直在谷歌上搜索SO,但没有任何效果.我在 XML Feed中遇到字符问题.我在String中保存每个标签的值,但是当#13;发生,它只是停止.我只在标签中得到4-5个第一个单词. 那么有人可以帮我一个可以删除它的方法吗?或者可能是XML Feed中标签中的文本对于String来说
我一直在谷歌上搜索SO,但没有任何效果.我在 XML Feed中遇到字符问题.我在String中保存每个标签的值,但是当
发生,它只是停止.我只在标签中得到4-5个第一个单词.

那么有人可以帮我一个可以删除它的方法吗?或者可能是XML Feed中标签中的文本对于String来说太长了?

谢谢!

示例代码:

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);
}

描述标签中的文字很长,但我只得到&#13之前的前五个单词;人物开始来了.

解决方法

您正在使用SAXparser来解析XML-String.

只读一个XML元素时,可以多次调用characters() – 方法.当它发现像< desc> blabla bla& #39; bla bla la.< / desc>.

解决方案是使用StringBuilder并在字符() – 方法中附加readed字符,然后在endElement()方法中重置StringBuilder:

private class Handler extends DefaultHandler{

    private StringBuilder temp_val;

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

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

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

}

鉴于此XML-File,上面的代码对我有用:

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

输出是:

Output: This is some example-text.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读