有一xml格式的字符串,如下:
<?xml version="1.0" encoding="GBK"?>
<results>
<result id="100" value="test">
<param name="ip"><![CDATA[127.0.0.1]]></param>
<param name="username"><![CDATA[root]]></param>
</template>
</results>
封装xml格式字符串
<span style="font-size:14px;"> public static void main(String[] args) {
Document document = DocumentHelper.createDocument();
document.setXMLEncoding("GBK");
Element templates = document.addElement("templates");
Element template = templates.addElement("template");
template.addAttribute("uuid", "66c221be-6ab2-ef53-1589-fe16877914e2").addAttribute("engine", "bvs");
addElement(template,"ip","1.2.1.1");
addElement(template,"username","root");
addElement(template,"password","123456");
System.out.println(document.asXML().toString());
}
private static void addElement(Element element, String fieldName, String value) {
Element param = element.addElement("param");
param.addAttribute("name", fieldName);
//param.addText(value);
param.addCDATA(value);
}</span>
模拟测试如下:
<span style="font-size:14px;">String templates = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><results><result id=\"100\" value=\"test\"><param name=\"ip\"><![CDATA[1.2.1.1]]></param><param name=\"username\"><![CDATA[nsfocus]]></param></result></results>";
Document document = null;
try {
document = DocumentHelper.parseText(results);
List<Element> result = document.selectNodes("//results//result");
for(Element element : result){
String id = element.attributeValue("id");
System.out.println(id);
if("100".equals(id)){
List<Element> params = document.selectNodes("//results//result//param");
for(Element param : params){
String name = param.attributeValue("name");
if("ip".equals(name)){
String ip= param.getData().toString();
System.out.println(ip);
} else if("username".equals(name)){
String username= param.getData().toString();
System.out.println(username);
}
}
}
}
} catch (DocumentException e) {
e.printStackTrace();
}</span>