0
我試圖找出一種爲空元素添加xsi:nil =「true」的方法。我可以在輸出上寫一個單獨的xsl來實現這一點,但是試圖弄清楚我是否可以將它寫入當前的xsl本身。爲空元素添加xsi:nil =「true」
電流XSL從上面的xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<xsl:output method="xml" indent="yes"/>
<!-- Variables defined for various input objects, for which the data is matched based on the key to the main object -->
<xsl:variable name="FS_ParentId" select="bpws:getVariableData('FS_ParentId')"/>
<xsl:variable name="FS_ConsultingFirmId" select="bpws:getVariableData('FS_ConsultingFirmId')"/>
<xsl:template match="*:objects">
<xsl:element name="objects" xmlns="urn:sobject.partner.soap.sforce.com">
<xsl:for-each select="*:Account">
<xsl:element name="Account">
<xsl:variable name="fsparentid" select="*:ParentId"/>
<xsl:variable name="fsconsultingfirmid" select="*:Consulting_Firm__c"/>
<xsl:element name="Name">
<xsl:value-of select="*:Name"/>
</xsl:element>
<xsl:element name="ParentId">
<xsl:value-of select="$FS_ParentId/*:objects/*:Account[*:Id = $fsparentid]/*:FinancialServicesID__c"/>
</xsl:element>
<xsl:element name="BillingStreet">
<xsl:value-of select="*:BillingStreet"/>
</xsl:element>
<xsl:element name="BillingState">
<xsl:value-of select="*:BillingState"/>
</xsl:element>
<xsl:element name="BillingPostalCode">
<xsl:value-of select="*:BillingPostalCode"/>
</xsl:element>
<xsl:element name="BillingCountry">
<xsl:value-of select="*:BillingCountry"/>
</xsl:element>
<xsl:element name="BillingCity">
<xsl:value-of select="*:BillingCity"/>
</xsl:element>
<xsl:element name="Fax">
<xsl:value-of select="*:Fax"/>
</xsl:element>
<xsl:element name="Website">
<xsl:value-of select="*:Website"/>
</xsl:element>
<xsl:element name="AnnualRevenue">
<xsl:value-of select="*:AnnualRevenue"/>
</xsl:element>
<xsl:element name="NumberOfEmployees">
<xsl:value-of select="*:NumberOfEmployees"/>
</xsl:element>
<xsl:element name="Description">
<xsl:value-of select="*:Description"/>
</xsl:element>
<xsl:element name="Referenceable__c">
<xsl:value-of select="*:Referenceable__c"/>
</xsl:element>
<xsl:element name="Company_Type__c">
<xsl:value-of select="*:Organization_Type__c"/>
</xsl:element>
<xsl:element name="Merge_Direction__c">
<xsl:value-of select="*:Merge_Survivor__c"/>
</xsl:element>
<xsl:element name="Company_at_Risk__c">
<xsl:value-of select="*:At_Risk_Client_Dissatisfaction__c"/>
</xsl:element>
<xsl:element name="Consulting_Firm__c">
<xsl:value-of select="$FS_ConsultingFirmId/*:objects/*:Account[*:OH_Organization_ID__c = $fsconsultingfirmid]/*:Id"/>
</xsl:element>
<xsl:element name="DUNS__c">
<xsl:value-of select="*:DUNS__c"/>
</xsl:element>
<xsl:element name="Domestic_Ultimate__c">
<xsl:value-of select="*:Domestic_Ultimate__c"/>
</xsl:element>
<xsl:element name="Global_Ultimate__c">
<xsl:value-of select="*:Global_Ultimate__c"/>
</xsl:element>
<xsl:element name="HQ_Parent__c">
<xsl:value-of select="*:HQ_Parent__c"/>
</xsl:element>
<xsl:element name="Legal_Name__c">
<xsl:value-of select="*:Legal_Name__c"/>
</xsl:element>
<xsl:element name="OH_Organization_ID__c">
<xsl:value-of select="*:Id"/>
</xsl:element>
<xsl:element name="Original_Effective_Date__c">
<xsl:value-of select="*:OHFS_Original_Effective_Date__c"/>
</xsl:element>
<xsl:element name="Situs_State__c">
<xsl:value-of select="*:Situs_State__c"/>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
輸出看起來像
<?xml version="1.0" encoding="UTF-8"?>
<objects xmlns="urn:sobject.partner.soap.sforce.com">
<Account>
<Name>account4</Name>
<ParentId>001P000000baEuGIAU</ParentId>
<BillingStreet>124</BillingStreet>
<BillingState>CA</BillingState>
<BillingPostalCode>94043</BillingPostalCode>
<BillingCountry>USA</BillingCountry>
<BillingCity>san jose</BillingCity>
<Fax/>
<Website>test.com</Website>
<AnnualRevenue/>
<NumberOfEmployees/>
<Description/>
<Referenceable__c/>
<Company_Type__c>Client</Company_Type__c>
<Merge_Direction__c/>
<Company_at_Risk__c>false</Company_at_Risk__c>
<Consulting_Firm__c>001P000000baKKtIAM</Consulting_Firm__c>
<DUNS__c/>
<Domestic_Ultimate__c/>
<Global_Ultimate__c/>
<HQ_Parent__c/>
<Legal_Name__c/>
<OH_Organization_ID__c>001f000000Er6B5AAJ</OH_Organization_ID__c>
<Original_Effective_Date__c/>
<Situs_State__c/>
</Account>
預期輸出
<?xml version="1.0" encoding="UTF-8"?>
<objects xmlns="urn:sobject.partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Account>
<Name>account4</Name>
<ParentId>001P000000baEuGIAU</ParentId>
<BillingStreet>124</BillingStreet>
<BillingState>CA</BillingState>
<BillingPostalCode>94043</BillingPostalCode>
<BillingCountry>USA</BillingCountry>
<BillingCity>san jose</BillingCity>
<Fax xsi:nil="true"/>
<Website>test.com</Website>
<AnnualRevenue xsi:nil="true"/>
<NumberOfEmployees xsi:nil="true"/>
<Description xsi:nil="true"/>
<Referenceable__c xsi:nil="true"/>
<Company_Type__c>Client</Company_Type__c>
<Merge_Direction__c xsi:nil="true"/>
<Company_at_Risk__c>false</Company_at_Risk__c>
<Consulting_Firm__c>001P000000baKKtIAM</Consulting_Firm__c>
<DUNS__c xsi:nil="true"/>
<Domestic_Ultimate__c xsi:nil="true"/>
<Global_Ultimate__c xsi:nil="true"/>
<HQ_Parent__c xsi:nil="true"/>
<Legal_Name__c xsi:nil="true"/>
<OH_Organization_ID__c>001f000000Er6B5AAJ</OH_Organization_ID__c>
<Original_Effective_Date__c xsi:nil="true"/>
<Situs_State__c xsi:nil="true"/>
</Account>
感謝您的幫助。
以下是輸入XML和帳戶可能重複。
<?xml version="1.0" encoding="UTF-8"?>
<objects xmlns="urn:sobject.partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Account>
<Id>001f000000Er6B5AAJ</Id>
<Website>test.com</Website>
<Situs_State__c xsi:nil="true"/>
<Referenceable__c xsi:nil="true"/>
<ParentId>001f000000DQpQBAA1</ParentId>
<OwnerId>005a0000009rvNbAAI</OwnerId>
<Organization_Type__c>Client</Organization_Type__c>
<Org_PTRR__c>0.0</Org_PTRR__c>
<Org_PARR__c>0.0</Org_PARR__c>
<OHFS_Original_Effective_Date__c xsi:nil="true"/>
<NumberOfEmployees xsi:nil="true"/>
<Name>account4</Name>
<Merge_Survivor__c xsi:nil="true"/>
<Legal_Name__c xsi:nil="true"/>
<HQ_Parent__c xsi:nil="true"/>
<Global_Ultimate__c xsi:nil="true"/>
<FinancialServicesID__c xsi:nil="true"/>
<Fax xsi:nil="true"/>
<Estimated_ACR__c>0.0</Estimated_ACR__c>
<Domestic_Ultimate__c xsi:nil="true"/>
<Description xsi:nil="true"/>
<DUNS__c xsi:nil="true"/>
<Consulting_Firm__c>001f000000Eh6r3AAB</Consulting_Firm__c>
<BillingStreet>124</BillingStreet>
<BillingState>CA</BillingState>
<BillingPostalCode>94043</BillingPostalCode>
<BillingCountry>USA</BillingCountry>
<BillingCity>san jose</BillingCity>
<At_Risk_Client_Dissatisfaction__c>false</At_Risk_Client_Dissatisfaction__c>
<AnnualRevenue xsi:nil="true"/>
</Account>
你的樣式它XSLT的2.0,所以最好標記您用'XSLT的2.0'因爲答案差別很大,從1.0到2.0的問題。 –
樣式表不能更簡單嗎?你爲什麼不顯示輸入XML,所以我們可以看到是否所有重複的喋喋不休都是非常必要的。 –
謝謝你們,附上輸入XML。讓我知道。 – Abhi