我的XML看起来是这样的:
<uc-export clientvers="8.00"> <JOBP AllowExternal="1" client="5000" name="DEV_1234" system="DEV">
</JOBP></uc-export>
<uc-export clientvers="8.00"> <JOBP AllowExternal="1" client="5000" name="DEV_435" system="DEV">
</JOBP></uc-export>
<uc-export clientvers="10.0.8+build.472"> <JOBS_UNIX AttrType="UNIX" client="5000" name="TEST_JOB123" system="DEV"><node content="1" id="VALUE" name="Variables" parent="" type="VALUE">
我需要从XML中提取的标签,无论是JOBS_UNIX或JOBP对象
我使用DocumentBuilderFatory
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
File file = new File(path);
Document document = db.parse(file);
document.getDocumentElement().normalize();
list = document.getElementsByTagName("*");
Element element = (Element) list.item(1);
jobProps = element.getAttributeNode("name").getValue();
我可以分析它是有1元是文件,但它不工作的多个标签
你的文件是一个结构良好的外部通用解析实体(通常称为简称为XML片段),但它不是一个良好的文档实体,所以你不能用通常的方法解析它。解析它最简单的方法是冠以<dummy>
和追加</dummy>
- 但是,只有当你自信有不会是对文件的XML声明或BOM工作。更安全的(也许更有效)的方法是构建是指这一个使用实体引用的XML文档,然后解析该参考文件。这将是这个样子:
<!DOCTYPE dummy [
<!ENTITY e SYSTEM "fragment.xml">
]>
<dummy>&e;</dummy>