Xpath属性和文本

时间:2016-07-26 19:03:30

标签: xpath localization attributes

我正在学习考试,但我无法弄清楚我在这里做错了什么。

我得到了这个xml

    <?xml version="1.0"?>
<schema xmlns=""
    xmlns:xsi="link-2"
    xsi:schemeLocation="link-3">

    <wm-stats>
        <wm jahr="2014">
            <teilnehmer platz="1">Deutschland</teilnehmer>
            <teilnehmer platz="2">Argentinien</teilnehmer>
            <teilnehmer platz="3">Niederlande</teilnehmer>
        </wm>

        <wm jahr="2010">
            <teilnehmer platz="1">Spanien</teilnehmer>
            <teilnehmer platz="2">Holland</teilnehmer>
            <teilnehmer platz="3">Deutschland</teilnehmer>
        </wm>

        <wm jahr="2006">
            <teilnehmer platz="1">Italien</teilnehmer>
            <teilnehmer platz="2">Frankreich</teilnehmer>
            <teilnehmer platz="3">Deutschland</teilnehmer>
        </wm>

        <record name="Rekordtorschütze">
            <person> Miroslav Klose </person> hat in Brasilien ...
        </record>

        <record name="Rekordweltmeisterschaften">
            <ort> Brasilien </ort> ist mit 5 Weltmeistersiegen ...
        </record>
    </wm-stats>
</schema>

我现在需要找到荷兰参加锦标赛的所有年份,我知道我必须寻找这样的东西// wm [@jahr] / teilnehmer [text()=&#34; Holland& #34;] 但是我现在如何获得jahr的价值呢?要找到的正确节点是jahr 2010.

1 个答案:

答案 0 :(得分:1)

相反的方式

//wm[teilnehmer = "Holland"]/@jahr

但是你的方法并非无法实现,

//wm[@jahr]/teilnehmer[. ="Holland"]/../@jahr

*请注意[@jahr]在此表达式中实际上是多余的

您始终可以在XPath中向上(和横向)导航。

查看此综合图像,解释可用于导航的各种XPath轴:https://our.umbraco.org/wiki/reference/xslt/xpath-axes-and-their-shortcuts/