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[routename/.="Fiumicino-Dubai"]/distance/@unit=@miles

于 2013-02-18T20:24:04.897 回答