xslt 1.0 按属性分组 (muenchian)
我在 xslt 和对以下 xml 进行分组时遇到问题
<?xml version="1.0" encoding="ISO-8859-1" ?>
<PosXmlResponse ver="2.0" usr="test" typ="search" lng="de" >
<search typ="pau" sub="" out="detail" pso="2" ka1="-1" ka2="-1" ka3="-1" ka4="">
<date von="07.06.2011" bis="16.06.2011" min="5" max="9" for="Y-m-d" />
<data id="21171889" ope="SAS" htc="AYTLIND " htn="LINDA" hon="Side-titreyengöl " hol="Turkey" reg="Antalya" stc="4" zzm="D0LA " rcd="D0" rnm="DZ/2 ERW/SPARZIMMER" ver="A" vnm="ALL INCLUSIVE" ppc="486" hsc="SASAYTLINDD0LA" />
<data id="21171899" ope="SAS" htc="AYTCLTI " htn="CLUB TITAN " hon="Alanya-kargicak" hol="Turkey" reg="Antalya" stc="4" zzm="D3KA " rcd="D3" rnm="DZ/2ERW+0-3CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="528" hsc="SASAYTCLTID3KA" />
<data id="21171895" ope="SAS" htc="AYTLIND " htn="LINDA" hon="Side-titreyengöl " hol="Turkey" reg="Antalya" stc="4" zzm="D1KA " rcd="D1" rnm="DZ/2ERW+0-1CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="528" hsc="SASAYTLINDD1KA" />
<data id="21171893" ope="SAS" htc="AYTLIND " htn="LINDA" hon="Side-titreyengöl " hol="Turkey" reg="Antalya" stc="4" zzm="12KA " rcd="12" rnm="FZ1/2ERW+0-3CHD/STANDARTZ" ver="A" vnm="ALL INCLUSIVE" ppc="528" hsc="SASAYTLIND12KA" />
<data id="21171911" ope="SAS" htc="AYTKELA " htn="KERVANSARAY LARA " hon="Antalya-lara " hol="Turkey" reg="Antalya" stc="5" zzm="D3SU " rcd="D3" rnm="DZ/2ERW+0-3CHD/SEITL.-MB " ver="U" vnm="ULTRA ALL INCLUSIVE" ppc="640" hsc="SASAYTKELAD3SU" />
<data id="21171928" ope="SAS" htc="AYTGRAS " htn="GRAND ART SIDE " hon="Side-evrenseki " hol="Turkey" reg="Antalya" stc="5" zzm="D3KA " rcd="D3" rnm="DZ/2ERW+0-3CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="640" hsc="SASAYTGRASD3KA" />
<data id="21171907" ope="SAS" htc="AYTKELA " htn="KERVANSARAY LARA " hon="Antalya-lara " hol="Turkey" reg="Antalya" stc="5" zzm="D3MU " rcd="D3" rnm="DZ/2ERW+0-3CHD/MEERBLICK " ver="U" vnm="ULTRA ALL INCLUSIVE" ppc="682" hsc="SASAYTKELAD3MU" />
<data id="21171880" ope="SAS" htc="AYTADAL " htn="ADALYA RESORT" hon="Side-evrenseki " hol="Turkey" reg="Antalya" stc="5" zzm="D1LA " rcd="D1" rnm="DZ/2ERW+0-1CHD/SPARZIMMER" ver="A" vnm="ALL INCLUSIVE" ppc="767" hsc="SASAYTADALD1LA" />
<data id="21171937" ope="SAS" htc="AYTSIEL " htn="SIAM ELEGANCE" hon="Belek-bogazkent" hol="Turkey" reg="Antalya" stc="5" zzm="D3KA " rcd="D3" rnm="DZ/2ERW+0-3CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="780" hsc="SASAYTSIELD3KA" />
<data id="21171878" ope="SAS" htc="AYTADAL " htn="ADALYA RESORT" hon="Side-evrenseki " hol="Turkey" reg="Antalya" stc="5" zzm="D1KA " rcd="D1" rnm="DZ/2ERW+0-1CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="786" hsc="SASAYTADALD1KA" />
<data id="21171924" ope="SAS" htc="AYTKELA " htn="KERVANSARAY LARA " hon="Antalya-lara " hol="Turkey" reg="Antalya" stc="5" zzm="22SU " rcd="22" rnm="FZ2/2ERW+0-4CHD/SEITL.-MB" ver="U" vnm="ULTRA ALL INCLUSIVE" ppc="801" hsc="SASAYTKELA22SU" />
<data id="21171933" ope="SAS" htc="AYTGRAS " htn="GRAND ART SIDE " hon="Side-evrenseki " hol="Turkey" reg="Antalya" stc="5" zzm="22KA " rcd="22" rnm="FZ2/2ERW+0-4CHD/STANDARTZ" ver="A" vnm="ALL INCLUSIVE" ppc="880" hsc="SASAYTGRAS22KA" />
<data id="21171946" ope="SAS" htc="AYTSIEL " htn="SIAM ELEGANCE" hon="Belek-bogazkent" hol="Turkey" reg="Antalya" stc="5" zzm="22KA " rcd="22" rnm="FZ2/2ERW+0-4CHD/STANDARTZ" ver="A" vnm="ALL INCLUSIVE" ppc="1011" hsc="SASAYTSIEL22KA" />
</search>
<navigation ist="" lim="13" max="13" />
</PosXmlResponse>
我尝试过 munchian 分组但没有成功。
什么 XSLT 是按属性 @htn
进行分组的正确方法?
I have problems with xslt and grouping the following xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<PosXmlResponse ver="2.0" usr="test" typ="search" lng="de" >
<search typ="pau" sub="" out="detail" pso="2" ka1="-1" ka2="-1" ka3="-1" ka4="">
<date von="07.06.2011" bis="16.06.2011" min="5" max="9" for="Y-m-d" />
<data id="21171889" ope="SAS" htc="AYTLIND " htn="LINDA" hon="Side-titreyengöl " hol="Turkey" reg="Antalya" stc="4" zzm="D0LA " rcd="D0" rnm="DZ/2 ERW/SPARZIMMER" ver="A" vnm="ALL INCLUSIVE" ppc="486" hsc="SASAYTLINDD0LA" />
<data id="21171899" ope="SAS" htc="AYTCLTI " htn="CLUB TITAN " hon="Alanya-kargicak" hol="Turkey" reg="Antalya" stc="4" zzm="D3KA " rcd="D3" rnm="DZ/2ERW+0-3CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="528" hsc="SASAYTCLTID3KA" />
<data id="21171895" ope="SAS" htc="AYTLIND " htn="LINDA" hon="Side-titreyengöl " hol="Turkey" reg="Antalya" stc="4" zzm="D1KA " rcd="D1" rnm="DZ/2ERW+0-1CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="528" hsc="SASAYTLINDD1KA" />
<data id="21171893" ope="SAS" htc="AYTLIND " htn="LINDA" hon="Side-titreyengöl " hol="Turkey" reg="Antalya" stc="4" zzm="12KA " rcd="12" rnm="FZ1/2ERW+0-3CHD/STANDARTZ" ver="A" vnm="ALL INCLUSIVE" ppc="528" hsc="SASAYTLIND12KA" />
<data id="21171911" ope="SAS" htc="AYTKELA " htn="KERVANSARAY LARA " hon="Antalya-lara " hol="Turkey" reg="Antalya" stc="5" zzm="D3SU " rcd="D3" rnm="DZ/2ERW+0-3CHD/SEITL.-MB " ver="U" vnm="ULTRA ALL INCLUSIVE" ppc="640" hsc="SASAYTKELAD3SU" />
<data id="21171928" ope="SAS" htc="AYTGRAS " htn="GRAND ART SIDE " hon="Side-evrenseki " hol="Turkey" reg="Antalya" stc="5" zzm="D3KA " rcd="D3" rnm="DZ/2ERW+0-3CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="640" hsc="SASAYTGRASD3KA" />
<data id="21171907" ope="SAS" htc="AYTKELA " htn="KERVANSARAY LARA " hon="Antalya-lara " hol="Turkey" reg="Antalya" stc="5" zzm="D3MU " rcd="D3" rnm="DZ/2ERW+0-3CHD/MEERBLICK " ver="U" vnm="ULTRA ALL INCLUSIVE" ppc="682" hsc="SASAYTKELAD3MU" />
<data id="21171880" ope="SAS" htc="AYTADAL " htn="ADALYA RESORT" hon="Side-evrenseki " hol="Turkey" reg="Antalya" stc="5" zzm="D1LA " rcd="D1" rnm="DZ/2ERW+0-1CHD/SPARZIMMER" ver="A" vnm="ALL INCLUSIVE" ppc="767" hsc="SASAYTADALD1LA" />
<data id="21171937" ope="SAS" htc="AYTSIEL " htn="SIAM ELEGANCE" hon="Belek-bogazkent" hol="Turkey" reg="Antalya" stc="5" zzm="D3KA " rcd="D3" rnm="DZ/2ERW+0-3CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="780" hsc="SASAYTSIELD3KA" />
<data id="21171878" ope="SAS" htc="AYTADAL " htn="ADALYA RESORT" hon="Side-evrenseki " hol="Turkey" reg="Antalya" stc="5" zzm="D1KA " rcd="D1" rnm="DZ/2ERW+0-1CHD/STANDARTZI" ver="A" vnm="ALL INCLUSIVE" ppc="786" hsc="SASAYTADALD1KA" />
<data id="21171924" ope="SAS" htc="AYTKELA " htn="KERVANSARAY LARA " hon="Antalya-lara " hol="Turkey" reg="Antalya" stc="5" zzm="22SU " rcd="22" rnm="FZ2/2ERW+0-4CHD/SEITL.-MB" ver="U" vnm="ULTRA ALL INCLUSIVE" ppc="801" hsc="SASAYTKELA22SU" />
<data id="21171933" ope="SAS" htc="AYTGRAS " htn="GRAND ART SIDE " hon="Side-evrenseki " hol="Turkey" reg="Antalya" stc="5" zzm="22KA " rcd="22" rnm="FZ2/2ERW+0-4CHD/STANDARTZ" ver="A" vnm="ALL INCLUSIVE" ppc="880" hsc="SASAYTGRAS22KA" />
<data id="21171946" ope="SAS" htc="AYTSIEL " htn="SIAM ELEGANCE" hon="Belek-bogazkent" hol="Turkey" reg="Antalya" stc="5" zzm="22KA " rcd="22" rnm="FZ2/2ERW+0-4CHD/STANDARTZ" ver="A" vnm="ALL INCLUSIVE" ppc="1011" hsc="SASAYTSIEL22KA" />
</search>
<navigation ist="" lim="13" max="13" />
</PosXmlResponse>
I have tried munchian grouping without success.
What XSLT is the correct way to group by the attribute @htn
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
定义一个
xsl:key
以按@htn
值对data
元素进行分组:然后您可以使用以下 XPath 表达式来检索唯一的列表
@htn
值的数量:此 XPath 表达式也可以工作:
应用于样式表:
当应用于示例 XML 时,它会生成以下输出,其中列出了分组的
data
元素通过@htn
价值观:Define an
xsl:key
to group thedata
elements by their@htn
values:Then you can use the following XPath expression to retrieve a unique listing of the
@htn
values:This XPath expression would also work:
Applied in a stylesheet:
When applied to the sample XML, it produces the following output that lists the
data
elements grouped by the@htn
values: