У меня есть два XML-файла. Один с английскими метками и один с французскими метками. У меня есть файл xslt, который может подобрать текст, но не отображает текст на выбранном языке.
Я новичок в xml и xslt. Любые идеи приветствуются.
Английский XML
<recordCreationDate displayLabel="Dates of Creation">Dates of Creation</recordCreationDate> <languageOfCataloging> <languageTerm type="text" lang="eng">English</languageTerm> </languageOfCataloging> </recordInfo>
Французский XML
<recordCreationDate displayLabel="Dates de création">Dates de création</recordCreationDate> <languageOfCataloging> <languageTerm type="text" lang="fre"></languageTerm> </languageOfCataloging> </recordInfo>
XSLT-файл
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mods="http://www.loc.gov/mods/v3" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xs="http://www.w3.org/2001/XMLSchema" <xsl:output method="html" encoding="UTF-8"/> <!-- Root Element --> <xsl:variable name="xslt" select="'mods'"/> <xsl:include href="common_editor_templates.xslt"/> <!-- Base Template --> <xsl:template match="/"> <div> <!-- Put the stylesheet override in here. --> <xsl:if test="$cssOverride"> <link rel="stylesheet" type="text/css"> <xsl:attribute name="href"> <xsl:value-of select="$cssOverride"/> </xsl:attribute> </link> </xsl:if> <br/> <!-- Main Title for page --> <span class="XSLTransformTitle"> <xsl:value-of select="'Metadata'"/> </span> <br /> <!-- Values Table --> <table class="XSLTransformTable"> <col width="200px" /> <col width="300px" /> <xsl:call-template name="MODS-Details" /> </table> </div> </xsl:template> <!-- English Fields Template --> <xsl:template name="MODS-Details"> <!-- <xsl:call-template name="add-field-node"> <xsl:with-param name="label"></xsl:with-param><xsl:with-param name="field"><path>/Q{http://www.loc.gov/mods/v3}mods/Q{http://www.loc.gov/mods/v3}recordInfo/Q{http://www.loc.gov/mods/v3}languageOfCataloging/Q{http://www.loc.gov/mods/v3}languageTerm [@type='text']</path></xsl:with-param> </xsl:call-template> --> <xsl:call-template name="add-field-node"> <xsl:with-param name="label"></xsl:with-param><xsl:with-param name="field"><path>/Q{http://www.loc.gov/mods/v3}mods/Q{http://www.loc.gov/mods/v3}titleInfo/Q{http://www.loc.gov/mods/v3}title</path></xsl:with-param> </xsl:call-template> <xsl:call-template name="add-field-node"> <xsl:with-param name="label"></xsl:with-param><xsl:with-param name="field"><path>/Q{http://www.loc.gov/mods/v3}mods/Q{http://www.loc.gov/mods/v3}recordInfo/Q{http://www.loc.gov/mods/v3}recordIdentifier</path></xsl:with-param> </xsl:call-template> <xsl:call-template name="add-field-node"> <xsl:with-param name="label"></xsl:with-param><xsl:with-param name="field"><path>/Q{http://www.loc.gov/mods/v3}mods/Q{http://www.loc.gov/mods/v3}recordInfo/Q{http://www.loc.gov/mods/v3}recordCreationDate</path></xsl:with-param> </xsl:call-template> <xsl:call-template name="add-field-node"> <xsl:with-param name="label"></xsl:with-param><xsl:with-param name="field"><path>/Q{http://www.loc.gov/mods/v3}mods/Q{http://www.loc.gov/mods/v3}typeOfResource</path></xsl:with-param> </xsl:call-template> </xsl:template> </xsl:stylesheet>
В идеале, вывод будет захватывать французский текст и / илианглийский текст и отображать эту информацию в качестве названия поля. Тем не менее, он не захватывает текст из XML. Я могу только вручную ввести его в файл xslt.