用分号分隔的有序 XPath 值
Ordered XPath values separated by a semicolon
我有以下 XML 文件:
<Body>
<ELEMENT Property1="A" Property2="B" Property3="C"/>
<ELEMENT Property1="D" Property2="E" Property3="F"/>
<ELEMENT Property1="G" Property2="H" Property3="I"/>
</Body>
我正在尝试让一个字符串对象的所有属性值按如下顺序排列:
A,B,C;D,E,F;G,H,I
我基本上需要用分号分隔每个 ELEMENT 属性。
怎么做?
你可以试试下面的表达式
string-join((string-join(//ELEMENT/@Property1, ','), string-join(//ELEMENT/@Property2, ','), string-join(//ELEMENT/@Property3, ',')), ';')
输出:
A,D,G;B,E,H;C,F,I
或
string-join((string-join(//ELEMENT[1]/@*, ','), string-join(//ELEMENT[2]/@*, ','), string-join(//ELEMENT[3]/@*, ',')), ';')
输出:
A,B,C;D,E,F;G,H,I
由于我想在属性之间设置 ,
,在元素之间设置 ;
,因此这是未定义数量的元素所需的解决方案:
string-join(for $x in //ELEMENT return string-join($x/@*,','), ';')
结果是
A,B,C;D,E,F;G,H,I
我有以下 XML 文件:
<Body>
<ELEMENT Property1="A" Property2="B" Property3="C"/>
<ELEMENT Property1="D" Property2="E" Property3="F"/>
<ELEMENT Property1="G" Property2="H" Property3="I"/>
</Body>
我正在尝试让一个字符串对象的所有属性值按如下顺序排列:
A,B,C;D,E,F;G,H,I
我基本上需要用分号分隔每个 ELEMENT 属性。
怎么做?
你可以试试下面的表达式
string-join((string-join(//ELEMENT/@Property1, ','), string-join(//ELEMENT/@Property2, ','), string-join(//ELEMENT/@Property3, ',')), ';')
输出:
A,D,G;B,E,H;C,F,I
或
string-join((string-join(//ELEMENT[1]/@*, ','), string-join(//ELEMENT[2]/@*, ','), string-join(//ELEMENT[3]/@*, ',')), ';')
输出:
A,B,C;D,E,F;G,H,I
由于我想在属性之间设置 ,
,在元素之间设置 ;
,因此这是未定义数量的元素所需的解决方案:
string-join(for $x in //ELEMENT return string-join($x/@*,','), ';')
结果是
A,B,C;D,E,F;G,H,I