XML을 구문 분석해야합니다. 지금은 SAX 파서를 사용한 적이 있습니다. 편집하고 끝내서 XML을 작성해야합니다. 이제는 SAX 파서로 어떻게해야합니까? 그 기능을 가지고 있지 않습니다. 나는 어려운 상황에 처해있다. 또한 나는 dom4j와 DOM에 관해 검색했다. 내 코드는 아래와 같습니다.Xml 구문 분석 저장 및 Java에서 만들기
public class XmlBack extends DefaultHandler {
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if (qName.equalsIgnoreCase("VarGroup")) {
varGroupVariables = new HashMap<String, List<VarGroupVariable>>();
}else if (qName.equalsIgnoreCase("Variable")) {
varGroupVariable = new VarGroupVariable();
nameAttribute = attributes.getValue("Name");
varGroupVariable.setName(nameAttribute);
}else if (qName.equalsIgnoreCase("TYP")) {
btype = true;
}else if (qName.equalsIgnoreCase("VALUE")) {
bvalue = true;
}
}
public void characters(char ch[], int start, int length)
throws SAXException {
String vtype = null;
if (btype) {
vtype = new String(ch, start, length);
varGroupVariable.setType(vtype);
btype = false;
}
Double value = null;
if (bvalue) {
String vvalue = new String(ch, start, length);
try {
value = Double.valueOf(vvalue);
} catch (NumberFormatException ne) {
value = 0d;
}
varGroupVariable.setValue(value);
bvalue = false;
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if (qName.equalsIgnoreCase("Variable")) {
String varGroupVariableName = varGroupVariable.getName().split("\\.")[0];
String name = varGroupVariableName.substring(0,varGroupVariableName.length() - 1);
String name1= varGroupVariableName = varGroupVariable.getName().split("\\.")[1];
System.out.println(name1);
List<VarGroupVariable> varGroupVariablesList;
if(varGroupVariables.containsKey(name)) {
varGroupVariablesList = varGroupVariables.get(name);
}else {
varGroupVariablesList = new ArrayList<VarGroupVariable>();
}
int serial = varGroupVariablesList.size();
varGroupVariable.setSerial(++serial);
varGroupVariablesList.add(varGroupVariable);
varGroupVariables.put(name, varGroupVariablesList);
//System.out.println(name+"\n");
}
}
private int no = 1;
boolean bcore,bmold,bvalue,btype = false;
String nameAttribute;
Map<String, List<VarGroupVariable>> varGroupVariables;
VarGroupVariable varGroupVariable;
}
정확한 문제는 무엇입니까? XML을 메모리로 파싱했으면 좋겠다. 값과 구조를 원하는대로 편집/변경 한 다음 작성하십시오. 나는 값과 구조를 변경하고 그것을 써 넣을 수있는 툴을 가지고 있기 때문에 DOM을 더 쉽게 사용할 수 있다고 생각한다. FWIW 나는 Xu를 사용한다 XOM –
답장을 보내 주셔서 감사합니다. 내 문제는 디스플레이 sax 파서를 사용하고 지금은 XML을 만들지 않습니다 지금은 DOM을 사용할 수 있습니다 또는 코드 또는 파서 SAX DOM을 변경해야 할 때까지입니다. – nick
구문 분석 및 XML 파일 작성에 어떤 메소드를 사용해야합니까? JDom, Dom, Sax, Dom4j. 명확한 아이디어를 제공해주십시오. – nick