首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用java读取xml文件

使用java读取xml文件
EN

Stack Overflow用户
提问于 2012-07-26 14:00:13
回答 2查看 273关注 0票数 0

以下是我的xml文件格式

代码语言:javascript
复制
<?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,但我可以按如下所示的格式打印

代码语言:javascript
复制
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的工作

EN

回答 2

Stack Overflow用户

发布于 2012-07-26 15:43:42

众所周知,XML解析是使用DOM和SAX完成的,但它们是核心。对于初学者来说,很难使用复杂的API集进行管理。我更倾向于使用框架,Apache Digester

它会很轻松,它也在使用SAX,但在这种情况下,您不需要使用SAX。

票数 0
EN

Stack Overflow用户

发布于 2012-07-26 19:56:55

我建议使用XSLT或XQuery实现这一点;在这两种情况下,代码都比用Java语言实现要简单得多。如果您需要在Java应用程序中对数据进行一些复杂的处理,那么使用Java是合理的,但是如果您只想提取一些信息并将其输出到文本文件中,那么使用更高级的工具要好得多。

下面是您的XSLT样式表的入门部分:

代码语言:javascript
复制
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="text"/>

<xsl:variable name="NL" select="'&#xa;'"/>

<xsl:template match="Hospitals">
  <xsl:text>Root element: Hospitals</xsl:text>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="Hospital">
  <xsl:text>&#xa;------------------</xsl:text>
  <xsl:text>&#xa;hospital id: </xsl:text>
  <xsl:value-of select="@hospitalId"/>
  <xsl:text>&#xa;</xsl:text>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="HospitalName">
  <xsl:text>&#xa;hospital name: </xsl:text>
  <xsl:value-of select="."/>
  <xsl:text>&#xa;</xsl:text>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="DepartmentName">
  <xsl:text>&#xa;department id: </xsl:text>
  <xsl:value-of select="@departmentId"/>
  <xsl:text>&#xa;</xsl:text>
  <xsl:text>&#xa;department name: </xsl:text>
  <xsl:value-of select="."/>
  <xsl:text>&#xa;</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开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11663286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档