[英]read xml file using java
以下是我的xml文件格式
<?xml version="1.0" encoding="UTF-8"?>
<Hospitals>
<Hospital hospitalId="14">
<HospitalName>aaa</HospitalName>
<Department>
<DepartmentName departmentId="21">card</DepartmentName>
<Clinics>
<ClinicName clinicId="38">c7</ClinicName>
<Status Flag="0">0</Status>
<ClinicName clinicId="39">c2</ClinicName>
<Status Flag="0">0</Status>
</Clinics>
</Department>
</Hospital>
<Hospital hospitalId="15">
<HospitalName>bbbb</HospitalName>
<Department>
<DepartmentName departmentId="22">dental</DepartmentName>
<Clinics>
<ClinicName clinicId="35">c6</ClinicName>
<Status Flag="0">0</Status>
<ClinicName clinicId="36">c5</ClinicName>
<Status Flag="0">0</Status>
</Clinics>
</Department>
</Hospital>
帮助我用Java代码从xml读取以打印alues,如下所示。我尝试了此操作,但是我能够按照以下所示的格式进行打印
Root element :Hospitals
----------------------
hospital Id : 14
Hospital Name : aaa
department Id : 21
Department Name : card
clinicId : 38
ClinicName : c7
status : 0
Flag : 0
clinicId : 38
ClinicName : c2
status : 0
Flag : 0
----------------------
hospital Id : 15
Hospital Name : bbbb
department Id : 22
Department Name : dental
clinicId : 35
ClinicName : c6
status : 0
Flag : 0
clinicId : 38
ClinicName : c5
status : 0
Flag : 0
任何形式的帮助都将帮助我快速完成工作...在此先感谢
好吧,众所周知,XML解析是使用DOM和SAX完成的,但它们是核心。 对于初学者来说,很难使用复杂的API进行管理。 我宁愿建议使用框架, Apache Digester
这会很容易,它也正在使用SAX,但是在现场,您不需要使用SAX。
我建议使用XSLT或XQuery进行此操作; 在这两种情况下,代码都比在Java中编写代码简单得多。 如果您需要对Java应用程序中的数据进行一些复杂的处理,那么使用Java是合理的,但是如果您只想提取一些信息并将其输出到文本文件,那么使用高级工具会更好。
这是您的XSLT样式表的入门版:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:variable name="NL" select="'
'"/>
<xsl:template match="Hospitals">
<xsl:text>Root element: Hospitals</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="Hospital">
<xsl:text>
------------------</xsl:text>
<xsl:text>
hospital id: </xsl:text>
<xsl:value-of select="@hospitalId"/>
<xsl:text>
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="HospitalName">
<xsl:text>
hospital name: </xsl:text>
<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="DepartmentName">
<xsl:text>
department id: </xsl:text>
<xsl:value-of select="@departmentId"/>
<xsl:text>
</xsl:text>
<xsl:text>
department name: </xsl:text>
<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
以及更多相同的东西。
您当然可以从Java(或从命令行,或从Ant等)运行XSLT代码。 JDK内置了XSLT 1.0处理器,或者您可以下载Saxon以获得XSLT 2.0处理器。 这个简单的示例仅使用XSLT 1.0,但是您很快就会发现自己需要XSLT 2.0功能,因此不妨从此开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.