将节点从父节点复制到子节点



我想将父节点复制到子节点中,但我不确定如何继续。

对于看起来奇怪的源文件,我提前道歉,我是这个论坛的新手,不知道如何正确粘贴XML文件。

我的 XML 源文件是这样的:


<?xml version="1.0"?><IncidentLogUpload>

<Header>


<BatchID>2013</BatchID><SystemID>2013</SystemID>
<DateTime>12/20/2013 3:37 PM</DateTime>

</Header>

<Item>

<IncidentLogs>

<IncidentLog>


<IncidentSource>Source</IncidentSource><Property>Property</Property><Location>B1</Location>

<SubLocation/>
<DailyLogID>IN2013</DailyLogID><IncidentID>IN2013</IncidentID>

<Reference/><DateTimeOccured>12/19/2013 8:17 PM</DateTimeOccured>

<IncidentType>Surveillance</IncidentType><Specific>Observation</Specific>

<Category>POI</Category>
<IncidentDetails>0400</IncidentDetails>
<RelatedIncidentNo/>
<DateTimeReported>12/19/2013 8:17 PM</DateTimeReported><ParticipantSubjectProfiles>

<ParticipantSubjectProfile>


<FirstName>James</FirstName><MiddleName></MiddleName><LastName>Henderson</LastName>
<ParticipantType>Subject</ParticipantType>

<MembershipNumber></MembershipNumber>
<DriversLicense></DriversLicense><PassportNumber></PassportNumber>

<IncidentID>IN2013</IncidentID>

</ParticipantSubjectProfile>


</ParticipantSubjectProfiles><ParticipantPersonnelProfiles>

<ParticipantPersonnelProfile>


<BusinessUnit>Games</BusinessUnit><FirstName>Edison</FirstName><MiddleName>John</MiddleName>
<LastName>Costabile</LastName>

<CSELNumber/>
<StaffID>000408</StaffID><DriversLicense/>
<AffBUKey>GamesIN2013</AffBUKey>

<ParticipantType>Personnel</ParticipantType>

</ParticipantPersonnelProfile>

</ParticipantPersonnelProfiles>

</IncidentLog>

</IncidentLogs>

</Item>

<Footer>

<NumberOfRecords>5</NumberOfRecords>

</Footer>

</IncidentLogUpload>

我想将<Property>节点复制到<ParticipantSubjectProfile><ParticipantPersonnelProfile>。最终结果应该是这样的:

<ParticipantSubjectProfiles>

<ParticipantSubjectProfile>


<FirstName>James</FirstName><MiddleName></MiddleName>
<LastName>Henderson</LastName>
<ParticipantType>Subject</ParticipantType>
<MembershipNumber></MembershipNumber><DriversLicense></DriversLicense>

<PassportNumber></PassportNumber>
<IncidentID>IN2013</IncidentID><Property>Property</Property>

</ParticipantSubjectProfile>


</ParticipantSubjectProfiles><ParticipantPersonnelProfiles>

<ParticipantPersonnelProfile>


<BusinessUnit>Games</BusinessUnit><FirstName>Edison</FirstName>
<MiddleName>John</MiddleName>
<LastName>Costabile</LastName><CSELNumber/>

<StaffID>000408</StaffID><DriversLicense/>
<AffBUKey>GamesIN2013</AffBUKey>

<ParticipantType>Personnel</ParticipantType>
<Property>Property</Property>

</ParticipantPersonnelProfile>

</ParticipantPersonnelProfiles>

请帮忙!谢谢!

已编辑

<xsl:template match="/">
<ParticipantSubjectProfiles>
<xsl:for-each select="IncidentLogUpload/Item/IncidentLogs/IncidentLog/ParticipantSubjectProfiles">
<ParticipantSubjectProfile>  
<FirstName>James</FirstName>
<MiddleName></MiddleName>
<LastName>Henderson</LastName>
<ParticipantType>Subject</ParticipantType>
<MembershipNumber></MembershipNumber>
<DriversLicense></DriversLicense>
<PassportNumber></PassportNumber>
<IncidentID>IN2013</IncidentID>
<Property> <xsl:value-of select="/IncidentLogUpload/Item/IncidentLogs/IncidentLog/Property"/></Property>
</ParticipantSubjectProfile>
</xsl:for-each>
</ParticipantSubjectProfiles>
</xsl:template>
</xsl:stylesheet>

试试这个模板:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

<xsl:template match="/">
<ParticipantSubjectProfiles>
<xsl:for-each select="//ParticipantSubjectProfiles/ParticipantSubjectProfile">
<xsl:copy>
<xsl:apply-templates/>
<xsl:apply-templates select="../preceding-sibling::Property"></xsl:apply-templates>
</xsl:copy>
</xsl:for-each>
</ParticipantSubjectProfiles>
<ParticipantPersonnelProfiles>
<xsl:for-each select="//ParticipantPersonnelProfiles/ParticipantPersonnelProfile">
<xsl:copy>
<xsl:apply-templates/>
<xsl:apply-templates select="../preceding-sibling::Property"></xsl:apply-templates>
</xsl:copy>
</xsl:for-each>
</ParticipantPersonnelProfiles>

</xsl:template>
</xsl:stylesheet>

最新更新