【发布时间】:2014-03-12 17:36:21
【问题描述】:
我是使用 Java 读取 XML 文件的新手!其实我想在 XML 的特定标签示例下阅读 Paragraphs 是:
<ATTRIBUTE name="Documentation" type="STRING"> </ATTRIBUTE>
<ATTRIBUTE name="__Variants__" type="LONGSTRING"> </ATTRIBUTE>
<ATTRIBUTE name="GUID_NPI" type="STRING"> </ATTRIBUTE>
<ATTRIBUTE name="Status" type="ENUMERATION">None</ATTRIBUTE>
<ATTRIBUTE name="Order" type="INTEGER">0</ATTRIBUTE>
<ATTRIBUTE name="Costs" type="DOUBLE">0</ATTRIBUTE>
<ATTRIBUTE name="Description" type="STRING">CARE management manage manager managing recognised that their capacity to develop developer development developing an insurance product was limited and they would need to bring in particular expertise. They first identified an array of basic requirements for the process as a whole: • Understanding of insurance principles and processes • Experience of microfinance and microfinance clients • Training skills • Clear vision of the new product development process • Marketing savvy, and Ability to work with and guide partners that have different backgrounds and motivations. </ATTRIBUTE>
<ATTRIBUTE name="Comment" type="STRING"> </ATTRIBUTE>
<ATTRIBUTE name="External documentation" type="PROGRAMCALL">ITEM "" param:"" </ATTRIBUTE>
<INTERREF name="Organizational unit"> </INTERREF>
<ATTRIBUTE name="Info on results" type="STRING"> </ATTRIBUTE>
所以我有一个包含以下标签下的段落的 xml
我想读取这些标签内的数据。我一直在尝试这个:
try {
File fXmlFile = new File("c:\\Data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("ATTRIBUTE");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("DATA : "+temp+" " + eElement.getAttribute("type"));
System.out.println("PARAGRAPH : " + eElement.getElementsByTagName("ATTRIBUTE").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
我得到的输出不是完整的:
Root element :ADOXML
----------------------------
Current Element :ATTRIBUTE
Staff id : STRING
java.lang.NullPointerException
at javaapplication5.JavaApplication5.main(JavaApplication5.java:53)
我的完整输出应该是一个段落:
CARE 管理层认识到他们开发保险产品的开发人员开发的能力有限,他们需要引入特定的专业知识。他们首先确定了整个流程的一系列基本要求: • 了解保险原则和流程 • 小额信贷和小额信贷客户的经验 • 培训技能 • 新产品开发流程的清晰愿景 • 精通营销,以及与客户合作的能力并指导具有不同背景和动机的合作伙伴。
谁能帮助我,请以更具体的方式阅读,请提前致谢!
【问题讨论】: