Я собирал XSL с помощью предыдущей публикации для преобразования некоторого XML. Теперь у меня есть XSL вывод правильных данных, но у меня две проблемы. 1) У меня есть некоторый дополнительный текст отображается, что я не хочу, чтобы каждый тег предшествует такие как:XSL-преобразование XML - нежелательный дополнительный текст, отображаемый
BUUBIF
BUBSBAT02
USBIFA
2) Мой цикл не совсем корректно. Тег должен инкапсулировать каждую итерацию содержания
<CourseCode/>
<Version/>
<EndDate/>
<PrimaryDisciplineCode/>
<StartDate/>
<Description/>
<FacultyCode/>
Моего XML имеют некоторые курсовые данные, что петли через два связанных записи, то на следующий курс, поэтому с точкой зрения субъектов она должна перебрать VCO, СКИ, СКИ, и затем начните снова.
Мой XML:
<?xml version="1.0" encoding="UTF-8" ?>
<exchange>
<vco>
<vco.srs>
<vco_crsc.vco.srs>BUUBIF</vco_crsc.vco.srs>
<vco_prgc.vco.srs>BUBSBAT02</vco_prgc.vco.srs>
<vco_rouc.vco.srs>USBIFI</vco_rouc.vco.srs>
<cbo>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>FJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>FJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
</cbo>
</vco.srs>
<vco.srs>
<vco_crsc.vco.srs>BUUBIF</vco_crsc.vco.srs>
<vco_prgc.vco.srs>BUBSBAT02</vco_prgc.vco.srs>
<vco_rouc.vco.srs>USBIFA</vco_rouc.vco.srs>
<cbo>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>FJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>AJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
<cbo.srs>
<cbo_occl.cbo.srs>FJ</cbo_occl.cbo.srs>
<crs>
<crs.srs>
<crs_titl.crs.srs>BSc Banking & Int Finance</crs_titl.crs.srs>
<crs_dptc.crs.srs>B</crs_dptc.crs.srs>
<crs_begd.crs.srs>2003-08-01</crs_begd.crs.srs>
</crs.srs>
</crs>
</cbo.srs>
</cbo>
</vco.srs>
</vco>
</exchange>
Мой 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" method="xml"/>
<xsl:template match="/exchange">
<ImportTask>
<CourseVersions>
<CourseVersion>
<xsl:apply-templates select="*|@*"/>
</CourseVersion>
</CourseVersions>
</ImportTask>
</xsl:template>
<xsl:template match="cbo_occl.cbo.srs">
<CourseCode>
<!-- select all text-Nodes of vco_* elements -->
<xsl:for-each select="../../../*[matches(name(),'^vco_.*')]/text()">
<xsl:value-of select="concat(.,'-')"/>
</xsl:for-each>
<xsl:value-of select="."/>
</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
</xsl:template>
<xsl:template match="crs/crs.srs">
<xsl:for-each select="exchange/crs/crs.srs">
</xsl:for-each>
<StartDate><xsl:value-of select="crs_begd.crs.srs"/></StartDate>
<Description><xsl:value-of select="crs_titl.crs.srs"/></Description>
<FacultyCode><xsl:value-of select="crs_dptc.crs.srs"/></FacultyCode>
</xsl:template>
</xsl:stylesheet>
Так что это дает мне выход:
<?xml version="1.0" encoding="UTF-8"?>
<ImportTask>
<CourseVersions>
<CourseVersion>
BUUBIF
BUBSBAT02
USBIFI
<CourseCode>BUUBIF-BUBSBAT02-USBIFI-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFI-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFI-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFI-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFI-FJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFI-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFI-FJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
BUUBIF
BUBSBAT02
USBIFA
<CourseCode>BUUBIF-BUBSBAT02-USBIFA-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFA-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFA-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFA-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFA-FJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFA-AJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
<CourseCode>BUUBIF-BUBSBAT02-USBIFA-FJ</CourseCode>
<Version>1</Version>
<EndDate>i:nil="true"</EndDate>
<PrimaryDisciplineCode>i:nil="true"</PrimaryDisciplineCode>
<StartDate>2003-08-01</StartDate>
<Description>BSc Banking & Int Finance</Description>
<FacultyCode>B</FacultyCode>
</CourseVersion>
</CourseVersions>
</ImportTask>
Большое спасибо
Ионы
Спасибо Мартин. Это разобралось в моем форматировании. Я не был уверен в синтаксисе для вызова двух шаблонов, но ваш « " это то, чем я был. У меня будет еще один способ получить мой цикл прямо сейчас, поскольку я хочу поместить каждый в , но на данный момент я помещаю весь контент между тегами –
Jonah
Выполнено, спасибо за помощь – Jonah
xml version = "1.0" encoding = "UTF-8"?> CourseVersion> xsl: for-each> CourseVersions> xsl: template> –
Jonah