4

.NETC# では、 a を にロードしようとするとき、type stringfromをxml使用して次の操作を行う必要があります。XmlDocumentSystem.Xml

例えば:

string xmlStr = "<name>Oscar</name>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlStr);
Console.Write(doc.OuterXml);

これは簡単に思えますが、これをどのように行うことができJavaますか? 上記のように、短くて単純なものを直接使用して a をロードし、これに他のメソッドを実装することを避けることstringは可能ですか?xml

前もって感謝します。

4

4 に答える 4

6

これを試して:

DocumentBuilderFactory documentBuildFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder doccumentBuilder = documentBuildFactory.newDocumentBuilder();
Document document = 
 doccumentBuilder.parse(new ByteArrayInputStream("<name>Oscar</name>".getBytes()));

次の方法でトラバースできますOscar

String nodeText = document.getChildNodes().item(0).getTextContent() ;         
System.out.println(nodeText);

元に戻すには:

TransformerFactory tFactory =  TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource domSource = new DOMSource(document);
//to print the string in sysout, System.out
StreamResult streamResult = new StreamResult(System.out);
transformer.transform(domSource, streamResult ); 

結果を文字列で取得するには:

DOMSource source = new DOMSource(document);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
StreamResult result = new StreamResult(outStream);
transformer.transform(source, result);
String resultString = new String( outStream.toByteArray());
System.out.println(resultString);
于 2012-10-22T02:13:20.910 に答える
3

Java のツリー モデルは、DOM、XOM、JDOM、DOM4J から選択できます。多くの人 (上記の Singh を含む) は DOM が JDK に含まれているため、デフォルトで DOM を使用していますが、DOM が最も古い (名前空間が登場する前に発明された) ため、おそらく最悪です。多く(HTML、イベント処理など、およびXML)。JDOM2 を使用することをお勧めします。Javadoc を見れば、入力ストリームから JDOM2 ドキュメントを構築するメソッドを見つけるのは難しくありません。

于 2012-10-22T07:50:19.150 に答える
0

strJavaで文字列を解析する場合Documentは、次のように実行できます。

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = dbf.newDocumentBuilder();
        InputStream is = new ByteArrayInputStream(str.getBytes("UTF-8"));
        return docBuilder.parse(is);
于 2012-10-22T02:05:30.170 に答える
0

Java には、XML を操作するためのライブラリがたくさんあります。標準の Java インストールに含まれる XML で動作する多くのクラスに加えて、他にも多くのオープン ソース ライブラリが利用可能です。ここにいくつかのオプションがあります。ドキュメントを見て、どれがニーズに合っているかを確認してください。

XStream ライブラリは非常に高速で使いやすいです。私はこれを XML シリアライゼーションに使用しましたが、とても満足しています。外部ライブラリを使用したくない場合は、ここに示されているjavax.xml.parsers.DocumentBuilderクラスを試してください。

于 2012-10-22T01:45:31.630 に答える