У меня есть XML так:XML - XSL Группа по
<produits>
<produit>
<CAT>GENCABI</CAT>
<ITEMCODE>100-0190</ITEMCODE>
<DESCR>Broches Henry Schein Longueur 21Mm Taille 40</DESCR>
<EXTDESC>Broches Henry Schein Longueur 21Mm Taille 40</EXTDESC>
<ITEMSET>100-9231</ITEMSET>
<MANUF>1</MANUF>
<IMAGE>100-0190</IMAGE>
<TOC>8</TOC>
<SUBTOC>3</SUBTOC>
</produit>
<produit>
<CAT>GENCABI</CAT>
<ITEMCODE>100-0240</ITEMCODE>
<DESCR>Racleurs 25Mm No40 (6) Schein</DESCR>
<EXTDESC>Racleurs 25Mm No40 (6) Schein</EXTDESC>
<ITEMSET>100-9231</ITEMSET>
<MANUF>1</MANUF>
<IMAGE>100-0240</IMAGE>
<TOC>8</TOC>
<SUBTOC>3</SUBTOC>
</produit>
<produit>
<CAT>GENCABI</CAT>
<ITEMCODE>100-0379</ITEMCODE>
<DESCR>Finger Plugger Henry Schein 25Mm B</DESCR>
<EXTDESC>Pour condensation laterale de la gutta manche plastique. Rouge</EXTDESC>
<ITEMSET>100-8766</ITEMSET>
<MANUF>1</MANUF>
<IMAGE>100-8766</IMAGE>
<TOC>8</TOC>
<SUBTOC>9</SUBTOC>
</produit>
</produits>
Стараюсь группы ДЕТАЛЬ "НИКАКИХ гарантий". я это делаю с XSL вроде этого:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes"/>
<xsl:key name="produit-by-ITEMSET" match="produit" use="ITEMSET" />
<xsl:template match="/produits">
<xsl:copy>
<xsl:apply-templates select="*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="produit">
<xsl:if test="generate-id() = generate-id(key('produit-by-ITEMSET', ITEMSET)[1])">
<produit>
<xsl:attribute name="ParentItem">
<xsl:value-of select="ITEMSET"/>
</xsl:attribute>
<xsl:for-each select="../produit[ITEMSET=current()/ITEMSET]">
<child>
<xsl:copy-of select="ITEMCODE" />
<xsl:copy-of select="DESCR" />
<xsl:copy-of select="EXTDESC" />
<xsl:copy-of select="MANUF" />
<xsl:copy-of select="IMAGE" />
</child>
</xsl:for-each>
</produit>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
я получил, что я whant для пункта с кратным «ребенком», но я хочу, чтобы избавиться от «ребенка» тега, если есть только один ребенок.
На мой взгляд, у меня есть что-то вроде «если подсчет (выберите childs)> 1 отображающий дочерний тег, иначе не поместил дочерний тег». Но я довольно новый с XSL/XML и lillte немного потеряли ... Если кто-нибудь есть советы ...
Edit: Добавить выходной XML У меня есть & Я хочу
Выхода у меня есть:
<produits>
<produit ParentItem="100-9231">
<child>
<ITEMCODE>100-0190</ITEMCODE>
<DESCR>Broches Henry Schein Longueur 21Mm Taille 40</DESCR>
<EXTDESC>Broches Henry Schein Longueur 21Mm Taille 40</EXTDESC>
<MANUF>1</MANUF>
<IMAGE>100-0190</IMAGE>
</child>
<child>
<ITEMCODE>100-0583</ITEMCODE>
<DESCR>Broches Henry Schein Longueur 21Mm Taille 30</DESCR>
<EXTDESC>Broches Henry Schein Longueur 21Mm Taille 30</EXTDESC>
<MANUF>1</MANUF>
<IMAGE>100-0583</IMAGE>
</child>
<child>
<ITEMCODE>100-0720</ITEMCODE>
<DESCR>Broches Henry Schein Longueur 21 Mm Taille 15</DESCR>
<EXTDESC>Broches Henry Schein Longueur 21 Mm Taille 15</EXTDESC>
<MANUF>1</MANUF>
<IMAGE>100-0720</IMAGE>
</child>
</produit>
<produit ParentItem="968-2000">
<child>
<ITEMCODE>968-2000</ITEMCODE>
<DESCR>Aiguilles Medicales Terumo</DESCR>
<EXTDESC></EXTDESC>
<MANUF>5048</MANUF>
<IMAGE>968-2000</IMAGE>
</child>
</produit>
</produits>
выходной Я хочу:
<produits>
<produit ParentItem="100-9231">
<child>
<ITEMCODE>100-0190</ITEMCODE>
<DESCR>Broches Henry Schein Longueur 21Mm Taille 40</DESCR>
<EXTDESC>Broches Henry Schein Longueur 21Mm Taille 40</EXTDESC>
<MANUF>1</MANUF>
<IMAGE>100-0190</IMAGE>
</child>
<child>
<ITEMCODE>100-0583</ITEMCODE>
<DESCR>Broches Henry Schein Longueur 21Mm Taille 30</DESCR>
<EXTDESC>Broches Henry Schein Longueur 21Mm Taille 30</EXTDESC>
<MANUF>1</MANUF>
<IMAGE>100-0583</IMAGE>
</child>
<child>
<ITEMCODE>100-0720</ITEMCODE>
<DESCR>Broches Henry Schein Longueur 21 Mm Taille 15</DESCR>
<EXTDESC>Broches Henry Schein Longueur 21 Mm Taille 15</EXTDESC>
<MANUF>1</MANUF>
<IMAGE>100-0720</IMAGE>
</child>
</produit>
<produit ParentItem="968-2000">
<ITEMCODE>968-2000</ITEMCODE>
<DESCR>Aiguilles Medicales Terumo</DESCR>
<EXTDESC></EXTDESC>
<MANUF>5048</MANUF>
<IMAGE>968-2000</IMAGE>
</produit>
</produits>
Пожалуйста, объясните более четко, что вы подразумеваете под чем-то, имеющим «несколько детей». _What_ имеет более одного ребенка и что такое _child_? Кроме того, убедитесь, что ваш образец XML-ввода содержит случай, когда это условие выполнено. –
ли редактировать XML, потому что я вырезать слишком много .. В моем примере Если я применить XSLT я получил что-то вроде [код] ... ... ... [/ code] Второй «продукт» получил только одного ребенка, а первый из них имеет несколько детей. Надеюсь, это более понятно ... Спасибо –
Mitchum
Это не делает яснее, я боюсь.Опубликуйте вывод XML, который вы фактически получаете _and_, вывод XML, который вы ожидаете. –