查找每个元素Xpath 1.0的出现次数

时间:2015-03-14 23:06:48

标签: xml xpath

所以我有这个看起来像这样的xml:

<session number="1" name="NameOfMySession">
    <article number="16">
        <title>The title of my article 1</title>
        <author name="Tetsuya Sakai"    lab="OneLab" country="Japan"/>
        <author name="Tatsuya Uehara"   lab="OneLab" country="Japan"/>
        <author name="Taishi Shimomori" lab="OneLab" country="Japan"/>
        <author name="Makoto Koyama"    lab="OneLab" country="Japan"/>
    </article>
    <article number="19">
        <title>The title of my article 2</title>
        <author name="Aiden R. Doherty"     lab="TheLab" country="Ireland"/>
        <author name="Alan F. Smeaton"      lab="TheLab" country="Ireland"/>
        <author name="Keansub Lee"          lab="TheLab" country="USA"/>
        <author name="Makoto Koyama"        lab="OneLab" country="Japan"/>
    </article>
</session>

我试图找到如何获得撰写多篇文章的作者的名字。

我的想法是计算作者出现在.xml中的时间,如果该计数大于1,则只显示名称。但出于某种原因,我无法弄清楚如何做到这一点。

因此,如果您对如何做到这一点有任何想法,那就太棒了。

1 个答案:

答案 0 :(得分:0)

选择作者姓名,其中包含同名作者的以下文章,而不是前一篇(仅重复作者一次。)

/session/article/author/@name[
    . = following::article/author/@name and
    not(. = preceding::article/author/@name)
]