我正在尝试从 XML 中读取数据并将数据存储在文本文件中。我的代码在读取和存储数据方面效果很好,除非 XML 文件中的段落包含双引号。
例如:
<Agent> "The famous spy" James Bond </Agent>
输出将忽略任何带引号的数据,结果将是:詹姆斯邦德
我正在使用 SAX,这是我的部分代码可能存在问题:
public void characters(char[] ch, int start, int length) throws SAXException
{
tempVal = new String(ch, start, length);
}
我想我应该在将字符串存储在我的 tempVal 之前替换引号。
有任何想法吗???
这是完整的代码以防万一:
公共类蕴涵{
private String Text; private String Hypothesis; private String ID; private String Entailment;
}
//Event Handlers
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
//reset
tempVal = "";
if(qName.equalsIgnoreCase("pair")) {
//create a new instance of Entailment
tempEntailment = new Entailment();
tempEntailment.setID(attributes.getValue("id"));
tempEntailment.setEntailment(attributes.getValue("entailment"));
}
}
public void characters(char[] ch, int start, int length) throws SAXException {
tempVal = new String(ch, start, length);
}
public void endElement(String uri, String localName, String qName) throws SAXException {
if(qName.equalsIgnoreCase("pair")) {
//add it to the list
Entailments.add(tempEntailment);
}else if (qName.equalsIgnoreCase("t")) {
tempEntailment.setText(tempVal);
}else if (qName.equalsIgnoreCase("h")) {
tempEntailment.setHypothesis(tempVal);
}
}
public static void main(String[] args){
XMLtoTXT spe = new XMLtoTXT();
spe.runExample();
}