0

XMLファイルを作成しました。その例を次に示します。

  <flight flightid="1">
<flightno>EK98</flightno>
<callsign>UAE98</callsign>
<airline>Emirates Airline</airline>
<altitude height="feet">41000 feet</altitude>
<speed ratio="mph">564 mph</speed>
<plane planeid="1">
  <name>Airbus 330</name>
  <speed>567 mph</speed>
  <wingspan>199 ft 11 in</wingspan>
  <length>301 ft 7 in</length>
  <registereddate>07-06-10</registereddate>
</plane>
<route>
  <routename>Fiumicino-Dubai</routename>
  <course bearing="degrees">154 degrees</course>
  <distance unit="miles">2697 miles</distance>
  <duration>PT5H30M</duration>
  <from>
    <iatacode>FCO</iatacode>
    <airport>Fiumicino</airport>
    <country>Italy</country>
    <city>Rome</city>
    <latitude>41.8044</latitude>
    <longitude>12.2508</longitude>
    <yahoowoeid>715520</yahoowoeid>
  </from>
  <to>
    <iatacode>DXB</iatacode>
    <airport>Dubai Intl</airport>
    <country>UAE</country>
    <city>Dubai</city>
    <latitude>25.2528</latitude>
    <longitude>55.3644</longitude>
    <yahoowoeid>1940345</yahoowoeid>
  </to>
</route>
</flight>

距離要素では、マイルの単位を確認できます。

<distance unit="miles">2697 miles</distance>

マイルを書いたテキストでは、属性のポイントは、それを使用して、距離の値と一緒に属性の値を出力できるようにするためのものだと感じました。距離が使用されているXSLのサンプルと、単位を追加する試みを次に示します。

<tr>
  <td><xsl:attribute name="class">lside</xsl:attribute>Distance</td>
  <td colspan="2"><xsl:attribute name="class">rside</xsl:attribute><xsl:value-of select="/flights/flight/route[routename/. ="Fiumicino-Dubai"]/distance"/><xsl:value-of select="@unit" /></td>
</tr>

私がこの質問をしている間、私の最初の意図は属性を使用する正しい方法ですか、これが属性が存在する理由であり、常に同じであるグローバルタイプの測定値を作成するためですか?

4

1 に答える 1

1

属性は、基本的に、XML ドキュメント内の要素と値のペアの短い形式です。したがって<distance unit="miles">2697 miles</distance>、次のように書くのと同じになります。

<distance>
    <unit>
        <value>miles</value>
    </unit>
    <value>2697</value>
</distance>

はい、上記の XML で element 属性を正しく使用しています。XML ドキュメントをどのように形成してもかまいません。そのため、それに応じてそのような情報を取得できます。

以下のコメントの回答を回答に転送します。

XPath を使用して特定の属性を持つ要素の値にアクセスするには、以下を使用して区別します。

"/flights/flight/route[ルート名/.="フィウミチーノ-ドバイ"]/distance/ @unit=@miles

于 2013-02-18T20:24:04.897 に答える