У меня есть файл XML, как показано ниже
<Season>
<Activitys>
<Activity>
<No>A001</No>
<Date>2020/1/1</Date>
</Activity>
<Activity>
<No>A002</No>
<Date>2020/2/1</Date>
</Activity>
</Activitys>
<Staffs>
<Staff>
<Name>Tom</Name>
<AssignedActivity>A001</AssignedActivity>
</Staff>
<Staff>
<Name>Jason</Name>
<AssignedActivity>A002</AssignedActivity>
</Staff>
</Staffs>
<Notice>description</Notice></Season>
, и я хочу преобразовать его в 2 XML файлы действий, каждый из которых будет отображать соответствующую активность <No>
, <AssignedStaff>
и <Notice>
информация.
<Activity>
<No>A001</No>
<Date>2020/1/1</Date>
<AssignedStaff>Tom</AssignedStaff>
<Notice>description</Notice></Activity>
Теперь я использую ниже XSLT, который может генерировать до 2 файлов и получать информацию об активности. Но не знаю, как получить назначенный персонал и заметить значение тега. Я пытался использовать apply-template, но до сих пор не могу получить путь. Может ли кто-нибудь предоставить какие-либо идеи? Большое спасибо.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="xml" indent="yes" name="xml"/>
<xsl:template match="/">
<xsl:for-each select="Season/Activitys/Activity">
<xsl:variable name="filename" select="concat('output1/',No,'.xml')" />
<xsl:value-of select="$filename" />
<xsl:result-document href="{$filename}" format="xml">
<Activity>
<No>
<xsl:value-of select="No"/>
</No>
<Date>
<xsl:value-of select="Date"/>
</Date>
</Activity>
</xsl:result-document>
</xsl:for-each>
</xsl:template>