Xml 用于组合多个相同项的XPATH

Xml 用于组合多个相同项的XPATH,xml,xpath,xpath-2.0,Xml,Xpath,Xpath 2.0,下面是简单的XML数据。我正在尝试在作者标签下获取姓氏 由于有多个作者,我不知道每个条目中有多少作者。因此,我正在寻找一种方法,将所有条目与“Authors”部分下的标记“LastName”连接起来,不管有多少条目。最好用分隔符分隔 <?xml version="1.0" encoding="UTF-8"?> <d> <Author /> <Conference /> <Domain /> <Jou

下面是简单的XML数据。我正在尝试在作者标签下获取姓氏

由于有多个作者,我不知道每个条目中有多少作者。因此,我正在寻找一种方法,将所有条目与“Authors”部分下的标记“LastName”连接起来,不管有多少条目。最好用分隔符分隔

<?xml version="1.0" encoding="UTF-8"?>
<d>
    <Author />
    <Conference />
    <Domain />
    <Journal />
    <Keyword />
    <Organization />
    <Publication>
        <EndIdx>1</EndIdx>
        <StartIdx>1</StartIdx>
        <TotalItem>112686</TotalItem>
        <Result>
            <Abstract />
            <Author>
                <Affiliation />
                <CitationCount>0</CitationCount>
                <DisplayPhotoURL />
                <FirstName>Jiawei</FirstName>
                <GIndex>0</GIndex>
                <HIndex>0</HIndex>
                <HomepageURL />
                <ID>594572</ID>
                <LastName>Han</LastName>
                <MiddleName />
                <NativeName />
                <PublicationCount>0</PublicationCount>
                <ResearchInterestDomain />
            </Author>
            <Author>
                <Affiliation />
                <CitationCount>0</CitationCount>
                <DisplayPhotoURL />
                <FirstName>Micheline</FirstName>
                <GIndex>0</GIndex>
                <HIndex>0</HIndex>
                <HomepageURL />
                <ID>2331044</ID>
                <LastName>Kamber</LastName>
                <MiddleName />
                <NativeName />
                <PublicationCount>0</PublicationCount>
                <ResearchInterestDomain />
            </Author>
            <CitationContext />
            <CitationCount>5979</CitationCount>
            <Conference />
            <DOI />
            <FullVersionURL />
            <ID>694978</ID>
            <Journal />
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>9033</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>9972</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>22078</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>35009</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>36239</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>38375</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>40483</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>41259</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <Keyword>
                <CitationCount>0</CitationCount>
                <ID>73998</ID>
                <Name />
                <PublicationCount>0</PublicationCount>
            </Keyword>
            <ReferenceCount>160</ReferenceCount>
            <Title>Data Mining: Concepts and Techniques</Title>
            <Type>1</Type>
            <Year>2000</Year>
        </Result>
    </Publication>
    <ResultCode>0</ResultCode>
    <Trend />
    <Version>1.1</Version>
</d>

1.
1.
112686
0
佳伟
0
0
594572
汉
0
0
米其林
0
0
2331044
坎伯
0
5979
694978
0
9033
0
0
9972
0
0
22078
0
0
35009
0
0
36239
0
0
38375
0
0
40483
0
0
41259
0
0
73998
0
160
数据挖掘:概念与技术
1.
2000
0
1.1
XPath 2.0:

string-join(.//Author/LastName, ', ')

在正确的上下文中运行它,例如按照XPath的哪个版本运行?这在XPath2.0或更高版本中很简单,但在1.0中不可能直接实现。@Ian Roberts。是的,2.0。事实上,我正在尝试使用泰伦德。我试图将其存储在数据库中的一列下。非常简单。谢谢如果我要包括FirstNameLastname,FirstNameLastname.?@DhirajEadara你必须使用一个显式的
for
来构建全名,然后连接这些全名,例如
字符串连接(对于$a in.//Author返回字符串连接($a/FirstName,$a/LastName),'',')
@IanRoberts。再次感谢。它起作用了。虽然开头有一个逗号需要removed@Dhiraj这表示文档中有一个没有名称的
字符串连接(对于中的$a//Author[FirstName and LastName]返回concat($a/FirstName,,$a/LastName),,,)