我要编写一个非常复杂的 XQuery(至少按照我的标准)。
这是我的输入xml:
<testRequest>
<request1>
<Line>1</Line>
<action>addtoName</action>
</request1>
<request2>
<Line>2</Line>
<action>addtoSpace</action>
</request2>
<request3>
<Line>3<Line>
<action>addtospace</action>
</request3>
</testRequest>
在我的输出 xml 中,操作应作为属性附加到“request1”元素。因此,根据 request1 元素下的 action 元素,request1 元素的属性应该是以下之一:
if action = IgnoreCase(addtoName), the request1 element should be <request1 action=insertingname>
if action = IgnoreCase(addtoSpace), the request1 element should be <request1 action=updatingspace>
不仅如此,我还需要根据元素下面的操作值向元素添加一个属性。所以,我要遍历一个元素下的每一个元素,看看有没有一个元素等于“addtospace”,如果是,那么我需要获取元素的对应值,并为元素组成属性。从上面的 xml 中,我的元素属性应该是,
<testRequest lineFiller="Line Like 2_* AND Line Like 3_*>, where 2 and 3 are the respective line numbers.
如果没有 element=addtoSpace 的元素,则该元素的属性应“更改”。
因此,总而言之,我转换后的 xml 应如下所示:
<testRequest lineFiller="Line Like 2_* AND Line Like 3_*>
<request1 action=insertingname>
<Line>1</Line>
<action>addtoName</action>
</request1>
<request2 action=updatingspace>
<Line>2</Line>
<action>addtoSpace</action>
</request2>
<request3 action=updatingspace>
<Line>3<Line>
<action>addtospace</action>
</request3>
</testRequest>
任何帮助完成这项艰巨的任务将不胜感激。
谢谢!!!