Это в продолжении моих предыдущих вопросов (извините за повторную проводку подобного типа вопроса еще раз):Слияния двух XSL-файлов в один файл (продолжение моего предыдущего Q-х .....)
Merge functionality of two xsl files into a single file (not a xsl import or include issue)
и
Merge functionality of two xsl files into a single file (continued.....)
Это на самом деле немного манипуляция мой второй вопрос. я теперь нужно объединить решение, предоставляемое Флэк на мой первый вопрос с «выбрать» условие в моем XSL:
<xsl:choose>
<xsl:when test='/Declaration/Header/DeclarantsReference = ""'>
<DeclarantsReference>
<xsl:text disable-output-escaping="no">A</xsl:text>
</DeclarantsReference>
</xsl:when>
<xsl:otherwise>
<DeclarantsReference>
<xsl:value-of select="/Declaration/Header/DeclarantsReference"/>
</DeclarantsReference>
</xsl:otherwise>
</xsl:choose>
Теперь любой входной образец XML, как:
<Declaration>
<Message>
<Meduim>#+#</Meduim>
<CommonAccessReference></CommonAccessReference>
</Message>
<BeginingOfMessage>
<MessageCode>5</MessageCode>
<DeclarationCurrency></DeclarationCurrency>
<MessageFunction>ISD</MessageFunction>
</BeginingOfMessage>
<Header>
<DeclarantsReference></DeclarantsReference>
<Items>
<Documents>
<ItemDocument>
<DocumentCode>XXX</DocumentCode>
<DocumentPart></DocumentPart>
<DocumentLanguage>#+#</DocumentLanguage>
</ItemDocument>
</Documents>
</Items>
</Header>
</Declaration>
должен выходной :
<Declaration>
<Message>
<Meduim></Meduim>
</Message>
<BeginingOfMessage>
<MessageCode>5</MessageCode>
<MessageFunction>ISD</MessageFunction>
</BeginingOfMessage>
<Header>
<DeclarantsReference>A</DeclarantsReference>
<Items>
<Documents>
<ItemDocument>
<DocumentCode>XXX</DocumentCode>
<DocumentLanguage></DocumentLanguage>
</ItemDocument>
</Documents>
</Items>
</Header>
</Declaration>
Благодарим за любую помощь заранее.
Поскольку вы не выбрали правильное решение (конвейерная обработка), вы (и будете постоянно в будущем) сталкиваться с новыми проблемами. Ваш код будет все больше и больше иметь спагетти, как внешний вид и ремонтопригодность будет постоянно ухудшаться. Не поздно возвращаться и возвращаться к решениям конвейерной обработки, которые были предоставлены вам ранее. Пусть это будет хорошим уроком. –
@ Dimitre: Трубопровод был неправильным решением. Здесь мы имеем некоторые правила, перезаписывающие правило идентичности. –
@Alejandro: Тогда этот ОП страдает от неспособности объяснить свою проблему понятным образом. Очевидно, он использует неправильный стиль кодирования, но он не предоставил полный пример, поэтому не может помочь, предлагая решение в лучшем стиле кодирования ... –