在Java中解析XML时从字符串中删除无效字符
我一直在谷歌上搜索和阅读,但没有任何效果。我对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
代码>发生时,它只是停止。我只得到标签中的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 example-text.</test>
这是一些
;示例文本。
输出为:
输出:这是一些
示例文本
您能否显示代码的相关部分,以及您看到的无效字符类型?因此,当我设置值时,我应该使用temp_val.toString()?在endElement()
-方法中设置您的值,并在结束时重置StringBuilder
。请更具体地说明“不工作”。您的意思是设置值,如temp_val.toString()中的值?我确实做到了,但我仍然无法从我的描述标签中获取所有文本。当它碰到我在帖子中抱怨的字符时,它就会停止。这可能与XML的编码有关吗?我的是UTF-8I,它和你在帖子中做的一模一样,不会在讨厌的字符后面添加任何文本。