この記事の主な研究は、domを使用してXMLドキュメントを追加、削除、変更、検索する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.xml.transflansflonsformerfactory; javax.xml.transform.domsource; Import javax.xml.transform.stream.streamResult; Import javax.xml.xpath; Import javax.xml.xpath.xpathConstants; Import javax.xml.xpath.xpathexpressionectide; org.w3c.dom.document; import org.w3c.dom.element; Import org.w3c.dom.node; import org.w3c.dom.dom.dom.domwriter {private static string xmlpath = "src // com // zc // homework18 // myxml.xml"; public static void getFamilyMemebers(){ /**ファイルファクトリーインスタンスを作成* / documentBuilderFactory DBF = documentBuilderFactory.NewInstance(); //作成されたパーサーがXMLドキュメントを解析するときに要素コンテンツ内のスペースを削除する必要がある場合、それはtrueです。そうしないと、false dbf.setignoringElementContentWhitespace(true); try {/**ファイルオブジェクトを作成*/ documentBuilder db = dbf.newdocumentbuilder(); //パーサーを作成してxmlドキュメントドキュメントdoc = db.parse(xmlpath); // domを使用してXMLファイルを解析する/**リストを通過し、XMLファイルデータを抽出*/ //ノード名NodeList sonlist = doc.getelementsbytagname( "son"); for(int i = 0; i <sonlist.getLength(); i ++)//ループ処理オブジェクト{//ノード属性の処理要素son =(要素)sonlist.item(i); //ループノードのすべての子ノードfor(node node = son.getFirstchild(); node!= node = node = node .getNextsibling()){//それが要素ノードであるかどうかを決定するif(node.getNodeType()== node.element_node string value = node.getFirstChild()。getNodevalue(); System.out.println(name + ":" + value); }}}} catch(例外e){system.out.println(e.getmessage()); }}} // public static void modifyson(){//ファイルファクトリーインスタンスの作成documentbuilderfactory dbf = documentbuilderfactory.newinstance(); dbf.setignoringElementContentWhitespace(true); try {// xml documentbuilder db = dbf.newdocumentbuilder()からDOMドキュメントインスタンスを取得します。 //ドキュメントオブジェクトドキュメントを取得xmldoc = db.parse(xmlpath); //ルートノード要素を取得root = xmldoc.getDocumentElement(); // ID 001要素Per =(element)selectsinglenode( "/father/son [@id = '001']"、root)を持つノードを位置付けます。 //年齢ノードのコンテンツを28に変更しますper.getElementsByTagname( "age")。アイテム(0).settextcontent( "28"); // TransformerFactory Factory = TransformerFactory.NewInstance()を保存します。 Transformer orter = factory.newtransformer(); ARTION.TRANSFORM(New DomSource(XMLDOC)、New StreamResult(new File(XMLPath))); } catch(Exception e){System.out.println(e.getMessage()); }} //ターゲットノードを取得し、削除し、最後にpublic static void disdardson(){documentBuilderFactory DBF = DocumentBuilderFactory.NewInstance(); dbf.setignoringElementContentWhitespace(true); try {documentBuilder db = dbf.newdocumentbuilder();ドキュメントxmldoc = db.parse(xmlpath); // rootノード要素root = xmldoc.getDocumentElement()を取得します。 //ルートノードのID = 002でノードを配置しますson =(element)selectsinglenode( "/父/son [@id = '002']"、root); //ノードroot.removechild(son)を削除します。 // TransformerFactory Factory = TransformerFactory.NewInstance()を保存します。 Transformer orter = factory.newtransformer(); ARTION.TRANSFORM(New DomSource(XMLDOC)、New StreamResult(new File(XMLPath))); } catch(Exception e){System.out.println(e.getMessage()); }} //新しいノードの追加public static void createson(){//ファイルファクトリーインスタンスの作成documentbuilderfactory dbf = documentbuilderfactory.newinstance(); dbf.setignoringElementContentWhitespace(false); try {documentBuilder db = dbf.newdocumentbuilder(); //ドキュメントオブジェクトを作成するドキュメントxmldoc = db.parse(xmlpath); // rootノード要素root = xmldoc.getDocumentElement()を取得します。 //ノードSonを作成し、対応するIDを004要素son = xmldoc.createelment( "son")に設定します。 son.setattribute( "id"、 "004"); //ノード名要素name = xmldoc.createelement( "name"); name.settextcontent( "Little Son"); son.appendChild(name); //ノード年齢要素Age = xmldoc.createelement( "age");を作成します。 age.settextcontent( "0"); son.appendChild(age); // sonをルートノードroot.appendchild(son)に追加します。 // TransformerFactory Factory = TransformerFactory.NewInstance()を保存します。 Transformer orter = factory.newtransformer(); ARTION.TRANSFORM(New DomSource(XMLDOC)、New StreamResult(new File(XMLPath))); } catch(Exception e){System.out.println(e.getMessage()); }} //ノード情報の変更public static node selectsinglenode(string expression、element source){node 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(result); } catch(xpathExpressionException e){system.out.println(e.getMessage()); } return result; } // public static void main(string [] args){getfamilymemebers(); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~かSystem.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~かsystem.out.println( "add data");XMLファイル
<?xml version = "1.0" encoding = "utf-8" standalone = "no"?> <father> <son id = "001"> <name> boss> boss </name> <age> 20 </son> <son id = "002"> <name> second </name> <age> <年齢> 13 </age> </son> </father>
要約します
上記は、domを使用してxmlドキュメントを追加、削除、変更、および検索するためにdomを使用したJavaの例に関するこの記事の内容全体です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!