2011-09-30 110 views
34

我想写一个代码,可以帮助我创建一个XML对象。例如,我会给一个字符串作为函数的输入,它会返回一个XMLObject。如何从Java中的字符串创建一个XML对象?

XMLObject convertToXML(String s) {} 

当我在网上搜索时,通常我看到了有关创建XML文档的示例。所有我看到的有关创建XML并写入文件并创建文件的内容。但我做了这样的事情:

Document document = new Document(); 
Element child = new Element("snmp"); 
child.addContent(new Element("snmpType").setText("snmpget")); 
child.addContent(new Element("IpAdress").setText("127.0.0.1")); 
child.addContent(new Element("OID").setText("1.3.6.1.2.1.1.3.0")); 
document.setContent(child); 

您认为这足以创建一个XML对象吗?也可以请你帮我如何从XML中获取数据?例如,我怎样才能从该XML获得IpAdress

谢谢大家很多

编辑1:其实现在我想,也许这将是更容易,我有一个像base.xml一个文件,我会写的所有东西基本成例如:

<snmp> 
<snmpType><snmpType> 
<OID></OID> 
</snmp> 

然后用这个文件创建一个XML对象。你对此有何看法?

+0

给出XMLObject的完全限定名称(FQN)。你在使用xmlbeans吗? –

+0

好的,第一个问题:什么是XMLObject?那是哪个图书馆? –

+0

XMLObject只是一个例子,我想要一个获取字符串作为参数的函数,然后它将返回一个XML对象。我正在使用jdom来实现。 – Ozer

回答

70

如果你可以创建一个字符串的XML,你可以轻松地将它转换为XML文档对象如 -

String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><a><b></b><c></c></a>"; 

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder; 
try { 
    builder = factory.newDocumentBuilder(); 
    Document document = builder.parse(new InputSource(new StringReader(xmlString))); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

您可以使用文档对象和xml解析库或xpath来获取ip地址。

+0

据我所知“parse”返回一个DOM文档对象,你将如何获得这个代码的SAX版本?感谢名单! – theexplorer

+0

如果没有源代码,我们想要创建一个新的Document对象,然后向其中添加子对象,那么可能还是必须先创建根元素? –

10

尝试像

public static Document loadXML(String xml) throws Exception 
{ 
    DocumentBuilderFactory fctr = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder bldr = fctr.newDocumentBuilder(); 
    InputSource insrc = new InputSource(new StringReader(xml)); 
    return bldr.parse(insrc); 
} 
相关问题