我制作了一个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>
虽然我问这个问题,但我的初衷是使用属性的正确方法,这就是存在属性的原因,以便创建一个全局类型的说测量值,它总是相同的吗?
答案 0 :(得分:1)
属性本质上是XML文档中元素值对的简短形式。因此<distance unit="miles">2697 miles</distance>
与编写以下内容相同:
<distance>
<unit>
<value>miles</value>
</unit>
<value>2697</value>
</distance>
是的,您在上面的XML中正确使用了element属性。您可以随意选择形成XML文档 - 因此可以相应地提取相关信息。
将以下评论中的答案转移到答案中:
要使用XPath访问具有特定属性的元素的值,请使用以下内容来区分:
“/ flight / flight / route [routename /。=”Fiumicino-Dubai“] /距离/ @ unit = @ miles