[英]Remove invalid characters from String when parsing XML in Java
我一直在谷歌上搜索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>
<desc>blabla bla & # 39; bla bla la.</desc>
。
解決方案是使用StringBuilder
並在characters()
-method中附加readed字符,然后在endElement()
-method中重置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-File,上面的代碼對我有用:
<?xml version="1.0" encoding="iso-8859-1" ?>
<test>This is some example-text.</test>
輸出是:
輸出:這是一些
例如文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.