이 기사의 주요 연구는 XML 문서를 추가, 삭제, 수정 및 검색하기 위해 DOM을 사용하여 관련 Java의 관련 코드입니다. 구체적인 예는 다음과 같습니다.
소스 코드 :
패키지 com.zc.homework18; import java.io.file; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.transform.transformer; import javax.xml.transform.transformerfactory; javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamresult; import javax.xml.xpath.xpath; import javax.xpath.xpath.xpathconstants; import javax.xml.xpath.xpathexception; import javax.xml.xputexception; org.w3c.dom.document; import org.w3c.dom.element; import org.w3c.dom.node; import org.w3c.dom.nodelist; public class xmlwriter {private static string xmlpath = "src // com // zc // homework18 // myxml.xml"; public static void getfamilymemebers () { /** 파일 생성 팩토리 인스턴스 생성* / documentbuilderfactory dbf = documentbuilderfactory.newinstance (); // 생성 된 파서가 XML 문서를 구문 분석 할 때 요소 내용에서 공백을 삭제 해야하는 경우, 그렇지 않으면 False DBF입니다. {/** 파일 생성 파일 개체를 만듭니다*/ docum // dom을 사용하여 XML 파일을 구문 분석하여 목록을 살펴보고 XML 파일 데이터를 추출하십시오* // 노드 이름 NODELIST SONLIST = DOC.GETELEMENTSBYTAGNAME ( "SON")에 따라 모든 관련 노드를 가져옵니다. for (int i = 0; i <sonlist.getLength (); i ++) // 처리 처리 객체 {// 노드 속성 처리 요소 son = (element) sonlist.Item (i); // 루프 노드의 모든 자식 노드는 (node node = son.getFirstChild (); node! = null! = null; node = node .getNexTsibling ()) {// 요소 노드인지 여부를 결정합니다 (node.getNodeType () == node.element_node) {string node.getNodename (node.getNodename); 문자열 값 = node.getFirstChild (). getNodevalue (); System.out.println (이름 + ":" + value); }}}} catch (예외 e) {system.out.println (e.getMessage ()); }}} // public static void modifyson () {// 파일 생성 팩토리 인스턴스 작성 documentBuilDerfactory dbf = documentBuilDerfactory.newinstance (); dbf.setIngerElementContentWhitespace (true); 시도 {// XML 문서에서 dom 문서 인스턴스 가져 오기 DocumentBuilder db = dbf.newdocumentBuilder (); // 문서 개체 가져 오기 문서 xmldoc = db.parse (xmlpath); // 루트 노드 요소를 가져옵니다. root = xmldoc.getDocumentElement (); // ID 001 요소가있는 위치 노드 per = (요소) selectsingLenode ( "/ausher/son [@id = '001']", root); // 연령 노드의 내용을 28 per.getElementsByTagName ( "age")로 변경합니다. 항목 (0) .settextContent ( "28"); // TransformErfactory factory를 저장 = transformerFactory.NewInstance (); 변압기 이전 = factory.newtransformer (); 이전 .transform (new domsource (xmldoc), new StreamResult (new File (xmlpath))); } catch (예외 e) {system.out.println (e.getMessage ()); }} // 대상 노드를 가져오고 삭제하고 최종적으로 공개 정적 void disfardson () {documentBuilDerfactory dbf = documentBuilDerfactory.newinstance (); dbf.setIngerElementContentWhitespace (true); try {documentbuilder db = dbf.newdocumentBuilder (); 문서 xmldoc = db.parse (xmlpath); // 루트 노드 요소를 가져옵니다. root = xmldoc.getDocumentElement (); // 루트 노드 요소에 id = 002로 노드를 배치하십시오. emeld son = (element) selectsingLenode ( "/afrise/son [@id = '002']", root); // 노드 루트를 삭제합니다 .removeChild (SON); // TransformErfactory factory를 저장 = transformerFactory.NewInstance (); 변압기 이전 = factory.newtransformer (); 이전 .transform (new domsource (xmldoc), new StreamResult (new File (xmlpath))); } catch (예외 e) {system.out.println (e.getMessage ()); }} // 새 노드 추가 공개 정적 void void resteson () {// 파일 생성 팩토리 인스턴스 생성 DocumentBuilDerfactory dbf = documentBuilDerfactory.newinstance (); dbf.setIngerElementContentWhitEspace (false); try {documentbuilder db = dbf.newdocumentBuilder (); // 문서 개체 작성 문서 XMLDOC = DB.PARSE (XMLPATH); // 루트 노드 요소를 가져옵니다. root = xmldoc.getDocumentElement (); // 노드 아들을 만들고, 해당 ID를 004 요소로 설정하십시오. son = xmldoc.createElement ( "son"); son.setattribute ( "id", "004"); // node name name name name = xmldoc.createelement ( "name"); 이름 .settextContent ( "작은 아들"); Son.AppendChild (이름); // 노드 생성 Age Element Age = xmldoc.createElement ( "age"); age.settextContent ( "0"); Son.AppendChild (나이); // 루트 노드에 아들을 추가합니다. AppendChild (아들); // TransformErfactory factory를 저장 = transformerFactory.NewInstance (); 변압기 이전 = factory.newtransformer (); 이전 .transform (new domsource (xmldoc), new StreamResult (new File (xmlpath))); } catch (예외 e) {system.out.println (e.getMessage ()); }} // 노드 정보 수정 공개 정적 노드 selectsingLenode (문자열 표현, 요소 소스) {노드 result = null; // XPath Factory XPathFactory XPathFactory = XPathFactory.NewInstance (); // xpath 객체 생성 xpath xpath = xpathfactory.newxpath (); try {result = (node) xpath.evaluate (Express, source, xpathconstants.node); System.out.println (결과); } catch (xpathexpressionException e) {System.out.println (e.getMessage ()); } 반환 결과; } // Public static void main (string [] args) {getfamilymemebers (); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ System.out.println ( "데이터 추가");XML 파일
<? xml version = "1.0"alcoding = "utf-8"stodalone = "no"?> <아버지> <아버지> <001 "> <name> boss </name> <ge> 20 </age> </son> <son id ="002 "> <name> second </name> </age> <son id ="003 "> <003"> <Age> 13 </age> </son> </아버지>
요약
위의 것은 DOM을 사용하여 XML 문서를 추가, 삭제, 수정 및 검색하는 Java의 예제 코드에 대한이 기사의 전체 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!