45

我正在尝试编写一个代码来帮助我创建一个 XML 对象。例如,我将一个字符串作为函数的输入,它会返回一个 XMLObject。

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 中获取数据吗?例如,我怎样才能IpAdress从那个 XML 中获取?

非常感谢大家

编辑1:实际上,现在我认为拥有一个类似的文件可能会容易得多base.xml,我会将所有基本内容写入其中,例如:

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

然后使用这个文件创建一个 XML 对象。你怎么看?

4

2 回答 2

86

如果您可以创建字符串 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 地址。

于 2011-09-30T07:48:50.423 回答
11

尝试类似的东西

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);
}
于 2011-09-30T07:47:53.933 回答