【发布时间】:2015-04-10 03:47:02
【问题描述】:
假设我有以下 xml:
<parent>
<child1 attr1="value" attr2="value" attr3="value"/>
<child1 attr1="value" attr2="value" attr3="value"/>
<child1 attr1="value" attr2="value" attr3="value"/>
</parent>
我想将 child1 类型的所有元素作为行放入由每个属性的列组成的表中 - 很简单。然而,我的问题是子元素的类型和子元素属性的数量/类型在 parent 的实例之间有所不同。以下是 parent 的某些实例可能包含的示例
<parent>
<child2 attr1="value" attr2="value" attr3="value" attr4="value"/>
<child2 attr1="value" attr2="value" attr3="value" attr4="value"/>
<child2 attr1="value" attr2="value" attr3="value" attr4="value"/>
</parent>
好消息是父元素中永远不会有两种类型的子元素,所以只要我为每种可能的子元素类型及其相关属性都有一个 when 子句,我就可以完成这项工作。坏消息是子元素有很多变化,并且需要很长时间才能确保我已经解释了其中的每一个。
我的问题是 - 有没有什么方法可以不加选择地为每个选择所有子元素而不寻找特定类型,同时自动将所有子元素属性选择为表格格式,而无需明确指定以下每个属性前锋:
<td><xsl:value-of select="attr1"/></td>
这有望根据父实例中子元素的类型及其相关的属性变化产生不同类型的表。
这是可能的还是我不走运?
【问题讨论】:
-
这有点令人困惑:一个文档中会有多个父级吗?如果是的话,你最后想要几张桌子?每个父母一张桌子,还是一张桌子(有不同宽度的行?)所有人?此外,当您说 “我想将 child1 类型的所有元素作为行放入表中”时,不清楚是否会有 other 存在子元素,如果是 - 当名称明显从父元素更改为父元素时,如何选择所需的元素。
-
我实际上在内容上弄错了,但是是的,会有很多父元素。我没有意识到在一个父元素中实际上可以有多种类型的子元素。基本上,在这一点上,我只是要编译一个所有可能变化的列表,这将需要一些时间,但也会让我最终以更好的方式格式化所有内容。