如何使用xpath连接不同的子节点



我有一个EDIFACT文件,其中包括三个字段:

- Value
- Exam
- Numb

它们在一个循环下,可以有"n"个值。下面的一个例子,其中n=4:

Value 1, Value 2, Value 3, Value 4
Exam 1, Exam 2, Exam 3, Exam 4
Numb 1, Numb 2, Numb 3, Numb 4

我想连接ValueExamNumb。如果我在做一个常规的concat,字符串看起来像

Value 1, Value 2, Value 3, Value 4, Exam 1, Exam 2, Exam 3, Exam 4, Numb 1, Numb 2, Numb 3, Numb 4

然而,我想让他们显示如下:

Value 1, Exam 1, Numb 1, Value 2, Exam 2, Numb 2 Value 3, Exam 3, Numb 3, Value 4, Exam 4, Numb 4.

我试过这个:

concat(string-join(Value, ' '), '', string-join(Exam, ' '), '', string-join(Numb, ' '))

输出为:

Value 1, Value 2, Value 3, Value 4, Exam 1, Exam 2, Exam 3, Exam 4, Numb 1, Numb 2, Numb 3, Numb 4

还尝试了以下操作,但没有生成输出

string-join(Value/concat(Exam, ' ',Numb, ' '), '')
string-join(Value/string-join(Exam | Numb, ''), '')

你能告诉我如何使用XPATH来实现这一点吗?任何其他方法都可以。

尝试此xpathaxes

concat(string-join(value, ' '), '', string-join(value[descendant-or-self::exam], ' '), '', string-join(value[descendant-or-self::numb], ' '))

最新更新