2017-08-25 72 views
1

我试图从输入中删除以“格式”开头的某些节点。我通过直接指定名称来删除一些节点,但有很多以“格式”开头的节点。任何人都可以指导我如何在开始时使用“格式”删除节点。 这里是我的XML如何删除名称以格式开头的xml节点

<PolicyHdr> 
    <PolicyHdrData> 
    <PolicyHdrData> 
     <ChangeType>-1</ChangeType> 
     <CoreMessageObjectArray> 
     <HasMessage>False</HasMessage> 
     <Message /> 
     <MessageCode /> 
     <Severity>0</Severity> 
     </CoreMessageObjectArray> 
     <ID>c1be84b1-f081-4fa6-bb45-610adc176042</ID> 
     <PolicyPrefix /> 
     <PolicyNumber>TSAZ00001019</PolicyNumber> 
     <DTCCDistTrxIDNum /> 
     <Status id="00000000-0000-0000-0000-000000000004" code="22">Active</Status> 
     <IssueState id="00000000-0000-0000-0000-000000000006" code="OLI_USA_CA">California</IssueState> 
     <IssueCountry id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <AppReceivedDate>2016-09-12T08:55:28.0000000</AppReceivedDate> 
     <ApplicationDate>2016-09-12T00:00:00.0000000</ApplicationDate> 
     <Qualified id="0">False</Qualified> 
     <ProdModelID id="7a841184-484b-457d-8a24-8257984dc5f0" code="Paycheck_Term">Lifely Term</ProdModelID> 
     <LOB id="00000000-0000-0000-0000-000000000003" code="L">Traditional Life</LOB> 
     <CompanyID id="00000000-0000-0000-0000-000000000020" code="PLAZ">Pruco Life of AZ</CompanyID> 
     <ExchangeType id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <HasPendingTrx id="1">True</HasPendingTrx> 
     <PolicyEffDate>2016-09-12T00:00:00.0000000</PolicyEffDate> 
     <TamraTestInd id="0">False</TamraTestInd> 
     <IRC7702Test>CVAT</IRC7702Test> 
     <TSA id="0">False</TSA> 
     <CommOptionType id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <CommIntRateType id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <FixedIndexedMode id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <ModeRule>0</ModeRule> 
     <QualifiedCode id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <OriginalPolicyNumber /> 
     <CertificateSuffix /> 
     <ResidentState id="00000000-0000-0000-0000-000000000006" code="OLI_USA_CA">California</ResidentState> 
     <ExchangeFlag id="0">False</ExchangeFlag> 
     <BrokerageAccount /> 
     <MarketSegment id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <SpecialMarket id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <ContributorType id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <PolicySwitch id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <PlanOption>CP15</PlanOption> 
     <PreventMEC id="0">False</PreventMEC> 
     <AppSignCity /> 
     <AppSignState id="00000000-0000-0000-0000-000000000006" code="OLI_USA_CA">California</AppSignState> 
     <MembershipNum /> 
     <AnnuityType /> 
     <AgentMatching id="0">False</AgentMatching> 
     <SystematicWithdrawal id="0">False</SystematicWithdrawal> 
     <SpecialRequest /> 
     <TIA90Days id="0">False</TIA90Days> 
     <TIA2Years id="0">False</TIA2Years> 
     <CashOnHand>0</CashOnHand> 
     <EstimatedTransferAmount>0</EstimatedTransferAmount> 
     <FreeLookPeriod>0</FreeLookPeriod> 
     <AppType id="00000000-0000-0000-0000-000000000004" code="EAPP">E-App</AppType> 
     <ReplacementPercent>1</ReplacementPercent> 
     <ModeOfSettlement id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <ExchangeBasis1035>0</ExchangeBasis1035> 
     <ExchangePrem1035Ext>0</ExchangePrem1035Ext> 
     <ExchangePrem1035Int>0</ExchangePrem1035Int> 
     <PriorMECStatus id="ffffffff-ffff-ffff-ffff-ffffffffffff" code="" /> 
     <RateLockEffectiveDate>1900-01-01T00:00:00.0000000</RateLockEffectiveDate> 
     <ProductCUSIP /> 
     <FreeLookEndDate>2016-10-12T00:00:00.0000000</FreeLookEndDate> 
     <FreeLookStartDate>2017-08-23T00:00:00.0000000</FreeLookStartDate> 
     <ReplacementFlag id="0">False</ReplacementFlag> 
     <EntityStatus id="0">False</EntityStatus> 
     <DisplayFieldName>TSAZ00001019,9/12/2016 12:00:00 AMActiveCalifornia</DisplayFieldName> 
     <UserID>cb177837-37c0-4033-88d9-a40853a2a342</UserID> 
     <TimeStamp>2017-08-23T16:28:12.2030000</TimeStamp> 
     <FormatCashOnHand>$0.00</FormatCashOnHand> 
     <FormatEstimatedTransferAmount>$0.00</FormatEstimatedTransferAmount> 
    </PolicyHdrData> 
    </PolicyHdrData> 
</PolicyHdr> 

,并在这里是我写

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
</xsl:template> 
<xsl:template match="CoreMessageObjectArray[not(*/term[string-length()>0])]"/> 
<xsl:template match="ChangeType[not(*/term[string-length()>0])]"/> 
<xsl:template match="EntityStatus[not(*/term[string-length()>0])]"/> 
<xsl:template match="ID[not(*/term[string-length()>0])]"/> 
<xsl:template match="DisplayName[not(*/term[string-length()>0])]"/> 
<xsl:template match="UserID[not(*/term[string-length()>0])]"/> 
<xsl:template match="Sequence[not(*/term[string-length()>0])]"/> 
</xsl:stylesheet> 

回答

1

如果你想删除其名称以“格式”开头的所有元素XSLT只需添加此模板

<xsl:template match="*[starts-with(local-name(), 'Format')]"/> 
+0

甜蜜的工作 – Hitzz91

+0

@ Hitzz91:请[**接受**](http://meta.stackoverflow.com/q/5234/234215)这个答案如果有帮助。谢谢。 – kjhughes