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

时间:2019-11-05 07:57:39

标签: loops xpath concatenation nodes difference

我有一个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实现此目标?任何其他方法也可以。

1 个答案:

答案 0 :(得分:0)

尝试xpath axes

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