在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); } 描述标签中的文字很长,但我只得到
之前的前五个单词;人物开始来了. 解决方法
您正在使用SAXparser来解析XML-String.
只读一个XML元素时,可以多次调用characters() – 方法.当它发现像< desc> blabla bla& #39; bla bla la.< / desc>. 解决方案是使用 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 example-text.</test> 输出是:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |