Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
250 views
in Technique[技术] by (71.8m points)

xml - Xquery append text to tag values depending of the element type

I need to get the values of some elements and then some text needs to be added depending on the element, for example:

<elementType>a</elementType> 
<otherElementType>b</otherElementType> 
<elementType>c</elementType> 
<elementType>d</elementType>

$doc//*[self::elementType or self::otherElementType]/string()

"a"
"b"
"c"
"d"

this returns the values but I don′t know how to get the values like this:

"a is an elementType"
"b is an otherElementType"
"c is an elementType"
"d is an elementType"
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use:

//*[self::elementType or self::otherElementType]
              /concat(., ' is a ', name(), '&#xA;')

When this expression is evaluated against the following XML document (the provided malformed fragment -- corrected):

<t>
    <elementType>a</elementType>
    <otherElementType>b</otherElementType>
    <elementType>c</elementType>
    <elementType>d</elementType>
</t>

The wanted, correct result is produced:

a is a elementType
 b is a otherElementType
 c is a elementType
 d is a elementType

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...