XML から読み取り、データをテキスト ファイルに保存しようとしています。私のコードは、XML ファイルの段落に二重引用符が含まれている場合を除き、データの読み取りと保存に非常に適しています。
例えば:
<Agent> "The famous spy" James Bond </Agent>
出力は引用符付きのデータを無視し、結果は次のようになります: James Bond
私は 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();
}