將包含 XML 的字串轉換為 org.w3c.dom.Document
一、簡介
當今最常見的資料格式之一是 XML(可擴展標記語言),它廣泛用於在應用程式之間建立和交換資料。
此外,這種用例在 Java 中很常見,我們必須將一些 XML 標記文字變更為org.w3c.dom.Document物件。
在本教程中,我們將討論如何將包含基於 XML 的內容的字串轉換為 Java 中的Org.w3c.dom.Document 。
2. org.w3c.dom.Document
org.w3c.dom.Document是 Java 中文檔物件模型 (DOM) XML API 的一個組成部分。這個基本類別代表整個 XML 文檔,並提供一組全面的方法,用於導航、修改和檢索 XML 文檔中的資料。在 Java 中使用 XML 時, the org.w3c.dom.Document物件成為不可或缺的工具。
為了更好地理解如何建立org.w3c.dom.Document對象,讓我們看一下以下範例:
try {
 // Create a DocumentBuilderFactory
 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 // Create a DocumentBuilder
 DocumentBuilder builder = factory.newDocumentBuilder();
 // Create a new Document
 Document document = builder.newDocument();
 // Create an example XML structure
 Element rootElement = document.createElement("root");
 document.appendChild(rootElement);
 Element element = document.createElement("element");
 element.appendChild(document.createTextNode("XML Document Example"));
 rootElement.appendChild(element);
 } catch (ParserConfigurationException e) {
 e.printStackTrace();
 }在前面的程式碼中,我們首先建立解析 XML 所需的元素,例如DocumentBuilderFactory和DocumentBuilder 。之後,它會建立一個基本的 XML 模式,其中一個標記為“root”的初始節點元素包含另一個稱為“element”的子節點元素,該子節點元素具有字串“XML document example” 。此外,XML 輸出應如下所示:
<root>
 <element>XML Document Example</element>
 </root>3. 從字串中解析 XML
需要解析 XML 字串才能將包含 XML 的字串轉換為org.w3c.dom.Document 。幸運的是,Java 中有幾個 XML 解析函式庫,其中包含 DOM、SAX 和 StAX。
本文重點介紹 DOM 解析器,進行簡單的解釋。讓我們透過一個逐步範例來了解如何使用 XML 解析字串並建立org.w3c.dom.Document物件:
@Test
 public void givenValidXMLString_whenParsing_thenDocumentIsCorrect()
 throws ParserConfigurationException {
 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 DocumentBuilder builder = factory.newDocumentBuilder();
 String xmlString = "<root><element>XML Parsing Example</element></root>";
 InputSource is = new InputSource(new StringReader(xmlString));
 Document xmlDoc = null;
 try {
 xmlDoc = builder.parse(is);
 } catch (SAXException e) {
 throw new RuntimeException(e);
 } catch (IOException e) {
 throw new RuntimeException(e);
 }
 assertEquals("root", xmlDoc.getDocumentElement().getNodeName());
 assertEquals("element", xmlDoc.getDocumentElement().getElementsByTagName("element").item(0).getNodeName());
 assertEquals("XML Parsing Example",
 xmlDoc.getDocumentElement().getElementsByTagName("element").item(0).getTextContent());
 }在上面的程式碼中,我們建立了對於 XML 解析至關重要的DocumentBuilderFactory和DocumentBuilder 。此外,我們還定義了一個範例 XML 字串 ( xmlString ),該字串將轉換為用於解析的InputSource 。我們在try-catch區塊中解析 XML 並catch任何可能的異常,例如SAXException或IOException 。
最後,我們使用一系列斷言來驗證解析的 XML 文件的正確性,包括使用getDocumentElement().getNodeName()檢查根元素的名稱,使用getDocumentElement().getElementsByTagName()子元素的名稱,以及文字子元素中的內容。
4。結論
總而言之,對於任何在眾多應用程式中處理基於 XML 的資料(從資料處理到 Web 服務或配置任務)的有能力的 Java 開發人員來說,了解如何operate org.w3c.dom.Document (NS) 至關重要。
與往常一樣,本文的完整程式碼範例可以在 GitHub 上找到。