SAX パーサーを使用する場合、ノード コンテンツに " があると解析に失敗します。これを解決するにはどうすればよいですか? すべての " 文字を変換する必要がありますか?
言い換えれば、ノードに引用符があるときはいつでも:
<node>characters in node containing "quotes"</node>
そのノードは、ハンドラが解析するときに複数の文字配列に分割されます。これは正常な動作ですか?引用符がなぜこのような問題を引き起こすのでしょうか?
私が使用しているコードは次のとおりです。
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
...
HttpGet httpget = new HttpGet(GATEWAY_URL + "/"+ question.getId());
httpget.setHeader("User-Agent", PayloadService.userAgent);
httpget.setHeader("Content-Type", "application/xml");
HttpResponse response = PayloadService.getHttpclient().execute(httpget);
HttpEntity entity = response.getEntity();
if(entity != null)
{
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
ConvoHandler convoHandler = new ConvoHandler();
xr.setContentHandler(convoHandler);
xr.parse(new InputSource(entity.getContent()));
entity.consumeContent();
messageList = convoHandler.getMessageList();
}