0

以下は私の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 コードを手伝ってください。これを試してみましが、以下に示す形式で印刷できます

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

どんな種類の助けでも、仕事をすばやく完了するのに役立ちます...事前に感謝します

4

3 に答える 3

1

使用している Java のバージョンは?? XML に XSD が定義されている場合、Java オブジェクトで XML を解析し、データに対して実行したい操作を読み取ったり実行したりできる多くのオプションがあります。いくつかのオプションを次に示します。

  1. JAXB2.0
  2. Xストリーム

Xstreamは非常に軽くて使いやすいですが、JDK 6.0+を使用している場合、JaxBはJDKで提供されています。

于 2012-07-26T06:05:43.223 に答える
0

そうですね、XML の解析は DOM と SAX で行われることはよく知られていますが、それらが中心です。初心者が複雑な API セットを管理するのは困難です。フレームワークApache Digesterを使用することをお勧めします。

それは楽になります、SAXも使用していますが、シーンの下では、SAXを使用する必要はありません。

于 2012-07-26T07:43:41.637 に答える
0

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="'&#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>

さらに同じです。

もちろん、XSLT コードを Java から (またはコマンド ラインや Ant などから) 実行することもできます。JDK には XSLT 1.0 プロセッサが組み込まれています。または、Saxon をダウンロードして XSLT 2.0 プロセッサを入手することもできます。この単純な例では XSLT 1.0 のみを使用していますが、すぐに XSLT 2.0 の機能が必要になるので、その方法から始めたほうがよいでしょう。

于 2012-07-26T11:56:54.630 に答える