以下是我的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>
帮助我使用从xml中读取的java代码来打印如下所示的值。我尝试使用this,但我可以按如下所示的格式打印
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
任何形式的帮助都会帮助我提前完成quickly...Thanks的工作
发布于 2012-07-26 15:43:42
众所周知,XML解析是使用DOM和SAX完成的,但它们是核心。对于初学者来说,很难使用复杂的API集进行管理。我更倾向于使用框架,Apache Digester
它会很轻松,它也在使用SAX,但在这种情况下,您不需要使用SAX。
发布于 2012-07-26 19:56:55
我建议使用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内置了XSLT1.0处理器,您也可以下载Saxon获得XSLT2.0处理器。这个简单的示例只使用了XSLT 1.0,但是您很快就会发现自己需要XSLT 2.0的特性,所以最好从XSLT 2.0开始。
https://stackoverflow.com/questions/11663286
复制相似问题