在.NET
C#中,当您尝试将string
加载到xml
时,您需要使用XmlDocument
中的System.Xml
类型并执行以下操作:< / p>
e.g:
string xmlStr = "<name>Oscar</name>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlStr);
Console.Write(doc.OuterXml);
这似乎很简单,但我怎样才能在Java
中执行此操作?是否可以使用直接,简短和简单的内容将string
加载到xml
中,并避免为此实现其他方法?
提前致谢。
答案 0 :(得分: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 );
要在String中获得结果:
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);
答案 1 :(得分:3)
您可以选择Java中的树模型 - DOM,XOM,JDOM,DOM4J。许多人(包括上面的Singh)默认使用DOM,因为它包含在JDK中,但它可能是最糟糕的,主要是因为它是最古老的(它是在命名空间出现之前发明的),并且因为它也试图做很多(HTML,事件处理等,以及XML)。我建议使用JDOM2。如果您查看Javadoc以找到从输入流构建JDOM2文档的方法,那应该不难。
答案 2 :(得分:0)
Java拥有大量用于处理XML的库。除了标准Java安装中包含的许多使用XML的类之外,还有许多其他开源库可用。这里有一些选择。查看文档,看看哪个符合您的需求:
XStream Library非常快速且易于使用。我已将它用于XML序列化,我对此非常满意。如果您不想使用extrenal库,请尝试 展示javax.xml.parsers.DocumentBuilder
的here课程答案 3 :(得分:0)
如果要在Java中解析字符串str
到Document
,可以执行以下操作:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbf.newDocumentBuilder();
InputStream is = new ByteArrayInputStream(str.getBytes("UTF-8"));
return docBuilder.parse(is);