Xquery html格式化

时间:2018-04-05 16:01:57

标签: xquery

我是Xquery的新手。我需要将API响应重写为自定义xml格式。

输入文件格式:

 <root>    <_1>
   <dataType>
      <name>XVar(Osmo [mOsmol/kg])</name>
      <term>M185</term>
      <type>XVar</type>
   </dataType>
   <values>305</values>
   <values>335</values>   </_1>    <_2>
   <dataType>
      <name>XVar(DO (2) [%])</name>
      <term>M199</term>
      <type>XVar</type>
   </dataType>
   <values>12</values>
   <values>33</values>
      </_2>    <_3>
   <dataType>
      <name>Maturity</name>
      <type>Maturity</type>
   </dataType>
   <values>0</values>
   <values>0.73600054</values>
       </_3> </root>

预期输出:

 <element> <XVar(Osmo [mOsmol/kg]> 305</XVar(Osmo [mOsmol/kg]>
 <XVar(Osmo [mOsmol/kg]> 335</XVar(Osmo [mOsmol/kg]> <XVar(DO (2)[%])>
 12</XVar(DO (2) [%])> <XVar(DO (2) [%])>33 </XVar(DO (2) [%])>
 <Maturity>0</Maturity> <Maturity>0.73600054</Maturity> </element>

节点(dataType - &gt; name)的数量在每个输入文件中也会有所不同  价值观将是动态的。

目前使用以下代码。

let $input:= /root for $i in $input//values 
return <element>
 <name>{$i/../dataType/name/text()}</name> <values>{$i/text()} </values>
 </element>

但所有数据都进来了。我的要求是  将节点名称保持为{$ i /../ dataType / name / text()},如值所示  是{$ i / text()} -

对于输入文件样本理想情况下应该有三种不同的  节点及其值。

任何人都可以帮我吗?

0 个答案:

没有答案