자바 에서 XML 읽 기와 쓰기 동작
6551 단어 Java
우선 클래스 이름 을 정 의 했 습 니 다: XML Handle
public class XMLHandle {
public static void main(String[] args) {
}
private String path="";
private Document data=null;
private Element element=null;
public XMLHandle() {
}
// xml
public XMLHandle(String path) {
this.path=path;
}
public String getPath() {
return path;
}
public Document getData() {
return data;
}
public Element getElement() {
return element;
}
}
그 중에서 주소 의 작성 예 는... / Project / xml / test. xml 이 고 그 중에서 Project 비트 프로젝트 프로젝트 프로젝트 폴 더 입 니 다.
xml
// xml ,
public boolean createXML(String filename){
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement(tablename);
Element dictElement = rootElement.addElement("dictionary");
Element DWElement1 = rootElement.addElement("DW");
try{
XMLWriter output = new XMLWriter(
new FileWriter( new File(filename) ));
output.write( document );
output.close();
return true;
}
catch(
IOException e){System.out.println(e.getMessage());
return false;
}
}
// Hashmap xml
public void createXML(String filename,HashMap map,String rootNodeName) throws Exception {
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement(rootNodeName);
ArrayList keyList=new ArrayList<>(map.keySet());
for(int i=0;i,String> map,String rootNodeName) throws Exception {
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement(rootNodeName);
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Hashmap attrmap = entry.getKey();
String val = entry.getValue();
Element valElement = rootElement.addElement("val");
valElement.addAttribute(attrmap.get("attrName"), attrmap.get("attrValue"));
valElement.setText(val);
}
XMLWriter output = new XMLWriter(
new FileWriter( new File(filename) ));
output.write( document );
output.close();
}
다음은 xml 파일 읽 기.
// XML
public Document LoadXML(String path){
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(path);
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
}
// xml
public void readXML(String path){
data=LoadXML(path);
//
element = data.getRootElement();
//
listAllNodes(element);
}
// xml Hashmap
/*public HashMap xmlToHashMap(String path){
data=LoadXML(path);
element = data.getRootElement();
HashMap dictionary =new HashMap<>();
xmlElementToHashmap_url(element,dictionary);
return dictionary;
}*/
// xml Hashmap
public HashMap xmlToHashMap(String path,String key,String type,HashMap dictionary){
data=LoadXML(path);
element = data.getRootElement();
xmlElementToHashmap_url(element,key,type,dictionary);
return dictionary;
}
/**
* ( )
*
* @param node
*/
public void listAllNodes(Element node) {
System.out.println(" ::" + node.getName());
//
List list = node.attributes();
//
for (Attribute attr : list) {
System.out.println(attr.getText() + "-----" + attr.getName());
}
if (!(node.getTextTrim().equals(""))) {
System.out.println(" ::::" + node.getText());
}
//
Iterator it = node.elementIterator();
//
while (it.hasNext()) {
Element e = it.next();
listAllNodes(e);
}
}
//treeUrl xml , /root/dict/*
public void xmlElementToHashmap_url(Document document,String treeUrl,HashMap dictionary) {
List list = document.selectNodes(treeUrl);
Iterator iter = list.iterator();
while (iter.hasNext()) {
Element el = (Element) iter.next();
//
List sttrlist = el.attributes();
//
for (Attribute attr : sttrlist) {
if (!(el.getTextTrim().equals(""))) {
dictionary.put(attr.getText(), el.getText());
}
}
}
}
다음은 기 존 노드 에 대한 수정 과 노드 추가 등 xml 파일 을 수정 합 니 다.
public void modifyXML(Document document,String filename,String treeUrl,String value) throws Exception {
Element e = (Element)document.selectSingleNode(treeUrl);
e.setText(value);
XMLWriter output = new XMLWriter(
new FileWriter( new File(filename) ));
output.write( document );
output.close();
}
// Hashmap xml
public void HashmapToXml(Document document,String filename,String treeUrl,HashMap map) throws Exception {
Element node = (Element)document.selectSingleNode(treeUrl);
ArrayList keyList=new ArrayList<>(map.keySet());
for(int i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.