我的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">
无论是JOBS_UNIX还是JOBP对象,我都需要从xml中提取标签
我正在使用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个元素,但是不能同时使用多个标签
答案 0 :(得分:0)
您的文件是格式良好的外部常规解析实体(通常简称为XML片段),但它不是格式良好的文档实体,因此您不能以通常的方式对其进行解析。解析它的最简单方法是在<dummy>
前面加上</dummy>
-但是,只有在您确信文件中不会有XML声明或BOM时,该方法才有效。一种更安全(也许更有效)的方法是使用实体引用构造一个引用该文档的XML文档,然后解析该引用文档。看起来像这样:
<!DOCTYPE dummy [
<!ENTITY e SYSTEM "fragment.xml">
]>
<dummy>&e;</dummy>