-1
我從程序接收XML並希望將「島」標記附加到頂部和底部,並將標記移動到其父標記的底部。我的XML看起來像:使用XSLT移動帶有多個名稱空間標記的XML
XML
<?xml version="1.0"?>
<IslandPolicyPeriodMessage xmlns="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.period.islandpolicyperiodmessagemodel" xmlns:accountid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.account.accountidmodel" xmlns:address="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.addressmodel" xmlns:contact="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.contactmodel" xmlns:contactname="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.contactnamemodel" xmlns:coverage="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.coveragemodel" xmlns:covterm="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.covtermmodel" xmlns:covtermpattern="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.covtermpatternmodel" xmlns:form="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.formmodel" xmlns:formtextdata="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.formtextdatamodel" xmlns:gl7cost_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7cost_glemodel" xmlns:gl7coveragepart_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7coveragepart_glemodel" xmlns:gl7covrgpartcoverage_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7covrgpartcoverage_glemodel" xmlns:gl7exposure_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7exposure_glemodel" xmlns:gl7line_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7line_glemodel" xmlns:job="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.job.jobmodel" xmlns:organizationid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.organizationidmodel" xmlns:policy="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policymodel" xmlns:policyaddlinsured="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policyaddlinsuredmodel" xmlns:policyaddlinsureddetail="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policyaddlinsureddetailmodel" xmlns:policyaddress="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policyaddressmodel" xmlns:policycontactrole="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policycontactrolemodel" xmlns:policylocation="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.location.policylocationmodel" xmlns:policyperiod="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.period.policyperiodmodel" xmlns:policyterm="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policytermmodel" xmlns:producercode="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.producercodemodel" xmlns:renewal="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.job.renewalmodel" xmlns:territorycode="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.general.territorycodemodel" xmlns:userroleassignment="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.userroleassignmentmodel" xmlns:uwcompanyid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.uwcompanyidmodel">
<CertMail_Ext>false</CertMail_Ext>
<DirectMail_Ext>true</DirectMail_Ext>
<EventName>SendIssuance</EventName>
<ImageRightDocumentType_Ext>Renewal Declarations</ImageRightDocumentType_Ext>
<ImageRightFlowStepID_Ext>3176331764</ImageRightFlowStepID_Ext>
<ImageRightFolderType_Ext>Print Product</ImageRightFolderType_Ext>
<JobType>Renewal</JobType>
<MiscData xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<NonInferredFormCodes xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<PolicyPeriod>
<policyperiod:NewlyAddedForms>
<Form>
<FormName>1</FormName>
</Form>
<Form>
<FormName>2</FormName>
</Form>
</policyperiod:NewlyAddedForms>
<Name>Test</Name>
</PolicyPeriod>
</IslandPolicyPeriodMessage>
XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.period.islandpolicyperiodmessagemodel" xmlns:accountid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.account.accountidmodel" xmlns:address="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.addressmodel" xmlns:contact="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.contactmodel" xmlns:contactname="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.contactnamemodel" xmlns:coverage="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.coveragemodel" xmlns:covterm="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.covtermmodel" xmlns:covtermpattern="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.covtermpatternmodel" xmlns:form="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.formmodel" xmlns:formtextdata="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.formtextdatamodel" xmlns:gl7cost_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7cost_glemodel" xmlns:gl7coveragepart_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7coveragepart_glemodel" xmlns:gl7covrgpartcoverage_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7covrgpartcoverage_glemodel" xmlns:gl7exposure_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7exposure_glemodel" xmlns:gl7line_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7line_glemodel" xmlns:job="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.job.jobmodel" xmlns:organizationid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.organizationidmodel" xmlns:policy="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policymodel" xmlns:policyaddlinsured="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policyaddlinsuredmodel" xmlns:policyaddlinsureddetail="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policyaddlinsureddetailmodel" xmlns:policyaddress="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policyaddressmodel" xmlns:policycontactrole="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policycontactrolemodel" xmlns:policylocation="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.location.policylocationmodel" xmlns:policyperiod="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.period.policyperiodmodel" xmlns:policyterm="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policytermmodel" xmlns:producercode="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.producercodemodel" xmlns:renewal="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.job.renewalmodel" xmlns:territorycode="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.general.territorycodemodel" xmlns:userroleassignment="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.userroleassignmentmodel" xmlns:uwcompanyid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.uwcompanyidmodel">
<xsl:output encoding="UTF-8" indent="yes" method="xml" />
<!-- this is the identity transform: it copies everything that isn't matched by a more specific template -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/i:IslandPolicyPeriodMessage">
<Island>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</Island>
</xsl:template>
<xsl:template match="PolicyPeriod" >
<xsl:copy>
<xsl:apply-templates select="*[not(policyperiod:NewlyAddedForms)]" />
<xsl:apply-templates select="policyperiod:NewlyAddedForms" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
輸出
<?xml version="1.0" encoding="UTF-8"?>
<Island xmlns:i="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.period.islandpolicyperiodmessagemodel" xmlns:accountid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.account.accountidmodel" xmlns:address="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.addressmodel" xmlns:contact="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.contactmodel" xmlns:contactname="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.contactnamemodel" xmlns:coverage="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.coveragemodel" xmlns:covterm="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.covtermmodel" xmlns:covtermpattern="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.coverage.covtermpatternmodel" xmlns:form="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.formmodel" xmlns:formtextdata="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.formtextdatamodel" xmlns:gl7cost_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7cost_glemodel" xmlns:gl7coveragepart_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7coveragepart_glemodel" xmlns:gl7covrgpartcoverage_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7covrgpartcoverage_glemodel" xmlns:gl7exposure_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7exposure_glemodel" xmlns:gl7line_gle="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.line.gl7.gl7line_glemodel" xmlns:job="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.job.jobmodel" xmlns:organizationid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.organizationidmodel" xmlns:policy="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policymodel" xmlns:policyaddlinsured="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policyaddlinsuredmodel" xmlns:policyaddlinsureddetail="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policyaddlinsureddetailmodel" xmlns:policyaddress="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policyaddressmodel" xmlns:policycontactrole="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.policycontactrolemodel" xmlns:policylocation="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.location.policylocationmodel" xmlns:policyperiod="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.period.policyperiodmodel" xmlns:policyterm="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.policytermmodel" xmlns:producercode="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.producercodemodel" xmlns:renewal="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.job.renewalmodel" xmlns:territorycode="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.general.territorycodemodel" xmlns:userroleassignment="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.userroleassignmentmodel" xmlns:uwcompanyid="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.contact.uwcompanyidmodel">
<IslandPolicyPeriodMessage xmlns="http://guidewire.com/pc/gx/islandinsurance.pc.gx.exstream.policy.period.islandpolicyperiodmessagemodel">
<CertMail_Ext>false</CertMail_Ext>
<DirectMail_Ext>true</DirectMail_Ext>
<EventName>SendIssuance</EventName>
<ImageRightDocumentType_Ext>Renewal Declarations</ImageRightDocumentType_Ext>
<ImageRightFlowStepID_Ext>3176331764</ImageRightFlowStepID_Ext>
<ImageRightFolderType_Ext>Print Product</ImageRightFolderType_Ext>
<JobType>Renewal</JobType>
<MiscData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<NonInferredFormCodes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<PolicyPeriod>
<policyperiod:NewlyAddedForms>
<Form>
<FormName>1</FormName>
</Form>
<Form>
<FormName>2</FormName>
</Form>
</policyperiod:NewlyAddedForms>
<Name>Test</Name>
</PolicyPeriod>
</IslandPolicyPeriodMessage>
</Island>
我改造工程的第一部分,但 'policyperiod:NewlyAddedForms' 不是移動。它應該是'政策期間'的最後一個標記
謝謝!
謝謝!那'我:'知道了。當時,我整個上午都在做這件事,而這件事從來沒有發生過。真棒回答! – Steve