{"id":31,"date":"2023-11-04T23:14:31","date_gmt":"2023-11-04T22:14:31","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=31"},"modified":"2024-01-08T09:14:44","modified_gmt":"2024-01-08T08:14:44","slug":"parsen-von-xml-strings-in-java","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=31","title":{"rendered":"Parsen von XML-Strings in Java"},"content":{"rendered":"\n<p>Das Konvertieren eines XML-Strings in ein <code>org.w3c.dom.Document<\/code>-Objekt in Java ist eine h\u00e4ufige Aufgabe, wenn man mit XML-Daten arbeitet. In diesem Artikel werden verschiedene M\u00f6glichkeiten vorgestellt, wie dies mithilfe von Java erreicht werden kann.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Verwendung von <code>javax.xml.parsers.DocumentBuilder<\/code><\/h2>\n\n\n\n<p>Eine der h\u00e4ufigsten Methoden, um einen XML-String in ein <code>org.w3c.dom.Document<\/code>-Objekt zu konvertieren, besteht darin, <code>javax.xml.parsers.DocumentBuilder<\/code> zu verwenden. Dies ist eine Standard-Java-API zum Parsen von XML-Dokumenten.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> javax.xml.parsers.DocumentBuilder;\n<span class=\"hljs-keyword\">import<\/span> javax.xml.parsers.DocumentBuilderFactory;\n<span class=\"hljs-keyword\">import<\/span> org.w3c.dom.Document;\n<span class=\"hljs-keyword\">import<\/span> java.io.ByteArrayInputStream;\n\npublic Document parseXMLString(<span class=\"hljs-built_in\">String<\/span> xmlString) {\n    <span class=\"hljs-keyword\">try<\/span> {\n        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n        DocumentBuilder builder = factory.newDocumentBuilder();\n        ByteArrayInputStream input = <span class=\"hljs-keyword\">new<\/span> ByteArrayInputStream(xmlString.getBytes(<span class=\"hljs-string\">\"UTF-8\"<\/span>));\n        Document <span class=\"hljs-built_in\">document<\/span> = builder.parse(input);\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">document<\/span>;\n    } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n        e.printStackTrace();\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">null<\/span>;\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird ein <code>DocumentBuilder<\/code> erstellt, der das <code>DocumentBuilderFactory<\/code> verwendet, um das <code>Document<\/code>-Objekt aus dem XML-String zu erstellen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Verwendung von <code>javax.xml.transform.Transformer<\/code><\/h2>\n\n\n\n<p>Eine andere M\u00f6glichkeit, XML in ein <code>org.w3c.dom.Document<\/code> zu konvertieren, besteht darin, die <code>javax.xml.transform.Transformer<\/code>-API zu verwenden. Dies erfordert das Erstellen eines <code>StreamSource<\/code>-Objekts aus dem XML-String und das anschlie\u00dfende Transformieren in ein <code>DOMResult<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> javax.xml.transform.Transformer;\n<span class=\"hljs-keyword\">import<\/span> javax.xml.transform.TransformerFactory;\n<span class=\"hljs-keyword\">import<\/span> javax.xml.transform.stream.StreamResult;\n<span class=\"hljs-keyword\">import<\/span> javax.xml.transform.stream.StreamSource;\n<span class=\"hljs-keyword\">import<\/span> org.w3c.dom.Document;\n\npublic Document convertXMLStringToDocument(<span class=\"hljs-built_in\">String<\/span> xmlString) {\n    <span class=\"hljs-keyword\">try<\/span> {\n        TransformerFactory factory = TransformerFactory.newInstance();\n        Transformer transformer = factory.newTransformer();\n        StreamSource source = <span class=\"hljs-keyword\">new<\/span> StreamSource(<span class=\"hljs-keyword\">new<\/span> StringReader(xmlString));\n        Document <span class=\"hljs-built_in\">document<\/span> = documentBuilder.newDocument();\n        transformer.transform(source, <span class=\"hljs-keyword\">new<\/span> DOMResult(<span class=\"hljs-built_in\">document<\/span>));\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">document<\/span>;\n    } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n        e.printStackTrace();\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">null<\/span>;\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Hier wird die <code>Transformer<\/code>-API verwendet, um das XML-String in ein <code>DOMResult<\/code> zu transformieren, das ein <code>Document<\/code>-Objekt enth\u00e4lt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Verwendung von Apache Xerces<\/h2>\n\n\n\n<p>Apache Xerces ist eine weit verbreitete Java-Bibliothek f\u00fcr die Verarbeitung von XML-Daten. Sie bietet auch eine einfache M\u00f6glichkeit, einen XML-String in ein <code>org.w3c.dom.Document<\/code> zu konvertieren.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> org.apache.xerces.parsers.DOMParser;\n<span class=\"hljs-keyword\">import<\/span> org.w3c.dom.Document;\n\npublic Document parseXMLStringWithXerces(<span class=\"hljs-built_in\">String<\/span> xmlString) {\n    <span class=\"hljs-keyword\">try<\/span> {\n        DOMParser parser = <span class=\"hljs-keyword\">new<\/span> DOMParser();\n        InputSource source = <span class=\"hljs-keyword\">new<\/span> InputSource(<span class=\"hljs-keyword\">new<\/span> StringReader(xmlString));\n        parser.parse(source);\n        <span class=\"hljs-keyword\">return<\/span> parser.getDocument();\n    } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n        e.printStackTrace();\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">null<\/span>;\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird ein <code>DOMParser<\/code> von Apache Xerces verwendet, um das <code>Document<\/code> direkt aus dem XML-String zu erstellen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Verwendung von JAXP (Java API for XML Processing)<\/h2>\n\n\n\n<p>JAXP ist eine Abstraktionsschicht f\u00fcr verschiedene XML-Verarbeitungsbibliotheken, die in Java eingebaut sind. Sie k\u00f6nnen JAXP verwenden, um ein <code>org.w3c.dom.Document<\/code> aus einem XML-String zu erzeugen.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> javax.xml.parsers.DocumentBuilder;\n<span class=\"hljs-keyword\">import<\/span> javax.xml.parsers.DocumentBuilderFactory;\n<span class=\"hljs-keyword\">import<\/span> org.w3c.dom.Document;\n\npublic Document parseXMLStringWithJAXP(<span class=\"hljs-built_in\">String<\/span> xmlString) {\n    <span class=\"hljs-keyword\">try<\/span> {\n        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n        DocumentBuilder builder = factory.newDocumentBuilder();\n        Document <span class=\"hljs-built_in\">document<\/span> = builder.parse(<span class=\"hljs-keyword\">new<\/span> InputSource(<span class=\"hljs-keyword\">new<\/span> StringReader(xmlString)));\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">document<\/span>;\n    } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n        e.printStackTrace();\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">null<\/span>;\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Dieses Beispiel zeigt, wie Sie JAXP verwenden k\u00f6nnen, um ein <code>Document<\/code> aus einem XML-String zu erstellen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Das Konvertieren eines XML-Strings in ein <code>org.w3c.dom.Document<\/code>-Objekt in Java kann auf verschiedene Arten erreicht werden. Die Wahl der Methode h\u00e4ngt von den Anforderungen Ihres Projekts und den bereits in Ihrer Anwendung verwendeten Bibliotheken ab. Die oben genannten Methoden sind jedoch einige der g\u00e4ngigsten und n\u00fctzlichsten Ans\u00e4tze f\u00fcr diese Aufgabe. Denken Sie daran, Fehlerbehandlung und Ressourcenfreigabe zu implementieren, um sicherzustellen, dass Ihre Anwendung robust und ressourceneffizient bleibt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Konvertieren eines XML-Strings in ein org.w3c.dom.Document-Objekt in Java ist eine h\u00e4ufige Aufgabe, wenn man mit XML-Daten arbeitet. In diesem Artikel werden verschiedene M\u00f6glichkeiten vorgestellt, wie dies mithilfe von Java erreicht werden kann. 1. Verwendung von javax.xml.parsers.DocumentBuilder Eine der h\u00e4ufigsten Methoden, um einen XML-String in ein org.w3c.dom.Document-Objekt zu konvertieren, besteht darin, javax.xml.parsers.DocumentBuilder zu verwenden. Dies [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-31","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=31"}],"version-history":[{"count":2,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/31\/revisions"}],"predecessor-version":[{"id":33,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/31\/revisions\/33"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}