XSL中每个

时间:2017-06-06 09:59:16

标签: xslt

用于XSL中的每个标记:

方案

输入xml

<root>
  <parent>
     <Child 1>
         <Child2>
              data1
              data2
              data3
                ....
                ...
         </child2>
        <Child2>
              data1
              data2
              data3
                ....
                ...
         </child2>
         <Child2>
              data1
              data2
              data3
                ....
                ...
         </child2>
</child1>
</parent>

当我在父标签上使用每个标签时,在转换文件中它只重复出现第二次出现的第二次。

我的要求是,它需要把所有孩子的两个孩子一个元素。

1 个答案:

答案 0 :(得分:0)

从评论中可以肯定的是,您没有格式良好的输入XML。您不能在文档的顶层有2个R3(根)元素。这可能是推动正确的方向。

您实际希望返回哪些数据,以及采用何种格式?

你也没有在Adress里面有一个重复小组,从而使你自己陷入困境。

如果你有选择权,我会将你的XML文档改为更有用的东西,因为目前它几乎不可行。

推荐:

select 
  s.sname,
  c.cname,
  l.loc,
  d.dept 
from students s
left outer join college c on c.sid = s.sid
left outer join locations l on l.sid = c.sid
left outer join departments d on d.sid = l.sid;

这样,您可以遍历名称相同的元素。

<?xml version="1.0" encoding="UTF-8"?>
<AddressBook owner="" date="">
    <Address>
        <addr firstName="" secondName="">
        </addr> 
        <addr firstName="" secondName="">
        </addr>
        <addr firstName="" secondName="">
        </addr>
    </Address>
    <Address>
        <addr firstName="" secondName="">
        </addr> 
        <addr firstName="" secondName="">
        </addr>
        <addr firstName="" secondName="">
        </addr>
    </Address>
</AddressBook>

或者,如果您需要添加地址行,请在您的addr元素中创建一个重复组,并为它们提供ID以进行排序,以确保它们按顺序排列。

希望这能指出你正确的方向。