Основным исследованием в этой статье является соответствующий код Java с использованием DOM для добавления, удаления, изменения и поиска документов XML. Конкретные примеры, как показано ниже.
исходный код:
пакет 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; импорт javax.xml.xpath.xpath; import javax.xml.xpath.xpathconstants; импорт javax.xml.xpath.xpathexpressionexcret; javax.xml.xpath.xpathfactory; import org.w3c.dom.document; import org.w3c.dom.element; import org.w3c.dom.node; импорт org.w3c.dom.nodelist; public class xmlwriter {private static String xmlpath = "src // com // zcmlorter {private xmlpath =" src // com // zclwriter {private xmlpath = "src // com // zc //mml18 //mml public static void getFamilyMemebers () { /** Создать экземпляр File Factory* / documentBuilderFactory dbf = documentBuilderFactory.newinStance (); // Если созданный анализатор должен удалить пространства в содержимого элемента при анализе документа XML, он правда, в противном случае это false dbf.setignoringelementcontentwhitepace (true); try {/** Создать объект файла*/ documentbuilder db = dbf.newdocumentbuilder (); // Создать анализатор для анализа документа Document doct doct xml doc = db.parse (xmlpath); // Используйте DOM для разбора файла XML/** Просмотреть список и извлечь данные файла XML*/ // Получить все связанные узлы в соответствии с именем узла NodeList SonList = DOC.GetElementsByTagName («Son»); для (int i = 0; i <sonlist.getLength (); i ++) // Объект обработки цикла {// Обработка атрибутов узла element son = (element) sonlist.item (i); // Все дочерние узлы в петле Node Son for (Node node = son.getFirstChild (); node! = Null; node = node .getNextSibling ()) {// определить, является ли это элементным узлом if (node.getnodeType () == node.element_node) {string name = node.getNAme (); String value = node.getFirstChild (). GetNodevalue (); System.out.println (name + ":" + value); }}}} catch (Exception e) {System.out.println (e.getMessage ()); }}} // Модифицировать публичный static void modifyson () {// Создать файловой заводской экземпляр DocumentBuilderFactory dbf = documentBuilderFactory.newinStance (); dbf.setignoringElementContentWhiteSpace (true); try {// получить экземпляр документа DOM от XML DocumentBuilder db = dbf.newdocumentbuilder (); // Получить документ документ документ xmldoc = db.parse (xmlpath); // Получить элемент корневого узла root = xmldoc.getDocumentElement (); // Узел позиции с элементом идентификатора 001 на = (элемент) SelectsingLenode ("/отец/сын [@id = '001']", root); // Измените содержание возрастного узла на 28 per.getElementsbytagname ("age"). Item (0) .settextcontent ("28"); // Сохранить Transformerffactory Factory = TransformerCfactory.newinStance (); Трансформатор прежний = factory.newTransformer (); бывший. Transform (новый Domsource (XMLDOC), новый StreamResult (новый файл (XMLPath))); } catch (Exception e) {System.out.println (e.getMessage ()); }} // Получить целевой узел, удалить и, наконец, сохранить public static void discordson () {documentBuilderFactory dbf = documentBuilderFactory.newinStance (); dbf.setignoringElementContentWhiteSpace (true); try {documentBuilder db = dbf.newdocumentBuilder (); Документ xmldoc = db.parse (xmlpath); // Получить элемент корневого узла root = xmldoc.getDocumentElement (); // позиционировать узел с id = 002 в элементе корневого узла Son = (element) selectsinglenode ("/отец/сын [@id = '002']", root); // Удалить root узла. Removechild (Son); // Сохранить Transformerffactory Factory = TransformerCfactory.newinStance (); Трансформатор прежний = factory.newTransformer (); бывший. Transform (новый Domsource (XMLDOC), новый StreamResult (новый файл (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 = xmldoc.getDocumentElement (); // Создать узел сына, установите соответствующий идентификатор на 004 element son = xmldoc.createelement («сын»); son.setattribute ("id", "004"); // Создать имя элемента узла = xmldoc.createElement ("name"); name.settextcontent («Маленький сын»); Son.appendchild (имя); // Создать возраст узла возраст = xmldoc.createElement («Возраст»); age.settextContent ("0"); Son.appendchild (возраст); // Добавить сына в корневой узел root.appendchild (сын); // Сохранить Transformerffactory Factory = TransformerCfactory.newinStance (); Трансформатор прежний = 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 xpath xpath = xpathfactory.newxpath (); try {result = (node) xpath.evaluate (Express, Source, xpathConstants.node); System.out.println (результат); } 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 ("Добавить данные");XML -файлы
<? xml version = "1.0" Encoding = "utf-8" stantalone = "no"?> <отец> <son id = "001"> <mame> boss </name> <возраст> 20 </age> </son> <son id = "002"> <pame> second </name> <возраст> 18 </age> </son> <son id = "003"> name> </name> </age> </son> </son> </namer </namer> </age> </age> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> </son> <возраст> 13 </возраст> </son> </отец>
Суммировать
Выше приведено все содержание этой статьи о примере кода Java с использованием DOM для добавления, удаления, изменения и поиска документов XML. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!