การวิจัยหลักในบทความนี้คือรหัสที่เกี่ยวข้องของ Java โดยใช้ DOM เพื่อเพิ่มลบแก้ไขและค้นหาเอกสาร XML ตัวอย่างเฉพาะดังที่แสดงด้านล่าง
ซอร์สโค้ด:
แพ็คเกจ com.zc.homework18; นำเข้า java.io.file; นำเข้า Javax.xml.parsers.documentBuilder; นำเข้า Javax.xml.parsers.documentBuilderFactory; นำเข้า Javax.xml.transform.Transformer; javax.xml.transform.dom.domsource; นำเข้า Javax.xml.transform.stream.streamresult; นำเข้า Javax.xml.xpath.xpath; นำเข้า Javax.xml.xpath.xpathconstants; org.w3c.dom.document; นำเข้า org.w3c.dom.element; นำเข้า org.w3c.dom.node; นำเข้า org.w3c.dom.nodelist; คลาสสาธารณะ XMLWriter {สตริงคงที่ส่วนตัว xmlpath = "src // com // zc // homework18 // myxl.xml.xml.xml.xml.xml โมฆะคงที่สาธารณะ getFamilyMemeBers () { /** สร้างอินสแตนซ์ของโรงงานไฟล์* / documentBuilderFactory dbf = documentBuilderFactory.newInstance (); // หากตัวแยกวิเคราะห์ที่สร้างขึ้นจะต้องลบช่องว่างในเนื้อหาองค์ประกอบเมื่อแยกวิเคราะห์เอกสาร XML มันเป็นความจริงมิฉะนั้นจะเป็นเท็จ dbf.setignoringelementContentEntentShitespace (จริง); ลอง {/** สร้างวัตถุไฟล์*/ documentBuilder db = dbf.newdocumentBuilder (); // สร้างตัวแยกวิเคราะห์เพื่อแยกวิเคราะห์เอกสารเอกสาร XML เอกสารเอกสาร = db.parse (xmlpath); // ใช้ DOM เพื่อแยกวิเคราะห์ไฟล์ XML/** ไปที่รายการและแยกข้อมูลไฟล์ XML*/ // รับโหนดที่เกี่ยวข้องทั้งหมดตามชื่อโหนด nodelist sonlist = doc.getElementByTagname ("ลูกชาย"); สำหรับ (int i = 0; i <sonlist.getLength (); i ++) // การวนซ้ำวัตถุการประมวลผล {// การประมวลผลของแอตทริบิวต์โหนด Element son = (องค์ประกอบ) sonlist.item (i); // โหนดลูกทั้งหมดในโหนดลูปบุตรสำหรับ (โหนดโหนด = son.getFirstChild (); โหนด! = null; โหนด = โหนด. getNextSibling ()) {// กำหนดว่าเป็นโหนดองค์ประกอบหรือไม่ (node.getNodeType () == node.Element_node) ค่าสตริง = node.getFirstChild (). getNodeValue (); System.out.println (ชื่อ + ":" + ค่า); }}}} catch (exception e) {system.out.println (e.getMessage ()); }}} // แก้ไขโมฆะคงที่สาธารณะคงที่ modifyson () {// สร้างไฟล์อินสแตนซ์ของโรงงาน FileBuilderFactory DBF = DocumentBuilderFactory.NewInstance (); dbf.setignoringElementContentTentShitespace (จริง); ลอง {// รับอินสแตนซ์เอกสาร DOM จากเอกสาร XML DocumentBuilder db = dbf.newdocumentBuilder (); // รับเอกสารเอกสารเอกสาร xmldoc = db.parse (xmlpath); // รับรูทองค์ประกอบรูทรูท = xmldoc.getDocumentElement (); // ตำแหน่งโหนดที่มี ID 001 องค์ประกอบต่อ = (องค์ประกอบ) SELECTSINGLENODE ("/พ่อ/ลูกชาย [@id = '001']", รูท); // เปลี่ยนเนื้อหาของโหนดอายุเป็น 28 ต่อ. getElementsByTagname ("อายุ") รายการ (0) .SetTCONTENT ("28"); // บันทึกโรงงาน TransformerFactory = TransformerFactory.NewInstance (); Transformer an = factory.newTransformer (); อดีต transform (ใหม่ DomSource (XMLDOC), StreamResult ใหม่ (ไฟล์ใหม่ (XMLPATH))); } catch (exception e) {system.out.println (e.getMessage ()); }} // รับโหนดเป้าหมายลบและในที่สุดบันทึก void discardson แบบคงที่สาธารณะ () {documentBuilderFactory dbf = documentbuilderfactory.newinstance (); dbf.setignoringElementContentTentShitespace (จริง); ลอง {DocumentBuilder db = dbf.newdocumentBuilder (); เอกสาร xmldoc = db.parse (xmlpath); // รับรูทองค์ประกอบรูทรูท = xmldoc.getDocumentElement (); // วางตำแหน่งโหนดด้วย id = 002 ในองค์ประกอบของโหนดรูท SON = (องค์ประกอบ) SELECTSINGLENODE ("/พ่อ/ลูกชาย [@id = '002']", รูท); // ลบ Node Root.removeChild (SON); // บันทึกโรงงาน TransformerFactory = TransformerFactory.NewInstance (); Transformer an = factory.newTransformer (); อดีต transform (ใหม่ DomSource (XMLDOC), StreamResult ใหม่ (ไฟล์ใหม่ (XMLPATH))); } catch (exception e) {system.out.println (e.getMessage ()); }} // เพิ่มโมฆะโหนดสาธารณะแบบคงที่ createSon () {// สร้างไฟล์อินสแตนซ์ของโรงงาน FileBuilderFactory DBF = DocumentBuilderFactory.NewInstance (); dbf.setignoringelementContentTentShitespace (เท็จ); ลอง {DocumentBuilder db = dbf.newdocumentBuilder (); // สร้างเอกสารเอกสารเอกสาร xmldoc = db.parse (xmlpath); // รับรูทองค์ประกอบรูทรูท = xmldoc.getDocumentElement (); // สร้าง Node Son ตั้งค่า ID ที่เกี่ยวข้องเป็น 004 Element SON = XMLDOC.CreateElement ("SON"); son.setAttribute ("id", "004"); // สร้างชื่อชื่อโหนดชื่อ = xmldoc.createElement ("ชื่อ"); Name.settextContent ("Little Son"); son.appendchild (ชื่อ); // สร้างโหนดอายุองค์ประกอบอายุ = xmldoc.createElement ("อายุ"); อายุ. settextcontent ("0"); son.appendchild (อายุ); // เพิ่มลูกชายในรูทรูทรูท. // บันทึกโรงงาน TransformerFactory = TransformerFactory.NewInstance (); Transformer an = factory.newTransformer (); อดีต transform (ใหม่ DomSource (XMLDOC), StreamResult ใหม่ (ไฟล์ใหม่ (XMLPATH))); } catch (exception e) {system.out.println (e.getMessage ()); }} // แก้ไขโหนดข้อมูลโหนดสาธารณะแบบคงที่ selectsingLenode (นิพจน์สตริง, แหล่งที่มาขององค์ประกอบ) {node result = null; // สร้าง XPath Factory XPathFactory XPathFactory = XPathFactory.NewInstance (); // สร้าง XPath Object XPath XPath = XPathFactory.NewXPath (); ลอง {result = (node) xpath.evaluate (ด่วน, แหล่งที่มา, xpathConstants.node); System.out.println (ผลลัพธ์); } catch (XPathExpressionException E) {System.out.println (e.getMessage ()); } ผลตอบแทนผลลัพธ์; } // พิมพ์โมฆะสาธารณะคงที่หลัก (สตริง [] args) {getFamilyMemeBers (); System.out.println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - - - - - System.out.println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - - - - - System.out.println ("เพิ่มข้อมูล");ไฟล์ XML
<? xml version = "1.0" การเข้ารหัส = "utf-8" standalone = "ไม่"?> <พ่อ> <son id = "001"> <name> บอส </name> <อายุ> 20 </ge> </son> <son id = "002"> <name> <Sy> 13 </ge> </son> </dad>
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับรหัสตัวอย่างของ Java โดยใช้ DOM เพื่อเพิ่มลบแก้ไขและค้นหาเอกสาร XML ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!