1
我想從soap env複製XML,並且我已經能夠成功完成此操作。接下來,我想刪除所有的XMLNS,這也是我能夠成功完成的。不過,我現在試圖從XML有效載荷中選擇一個XSI屬性,並在XML中創建一個包含XSI = TYPE字段內容的新字段。我將證明我所希望做的:XSLT刪除Soap Env並將SINGLE XSI標記複製到它自己的字段
示例XML:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<notifications xmlns="http://soap.sforce.com/2005/09/outbound">
<ActionId>04kf000000000FfAAI</ActionId>
<SessionId xsi:nil="true"/>
<Notification>
<Id>04lf00000000xvQAAQ</Id>
<sObject xsi:type="sf:Account" xmlns:sf="urn:sobject">
<sf:Id>001f0000006UzdCAAS</sf:Id>
<sf:Customer_Number__c>dummy1234</sf:Customer_Number__c>
<sf:FirstName>Test</sf:FirstName>
<sf:LastModifiedDate>2012-10-15T10:59:54.000Z</sf:LastModifiedDate>
<sf:LastName>Test</sf:LastName>
</sObject>
</Notification>
</notifications>
</soapenv:Body>
</soapenv:Envelope>
CURRENT XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:r="http://soap.sforce.com/2005/09/outbound"
exclude-result-prefixes="r">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates select="/soap:Envelope//r:notifications"/>
</xsl:template>
<xsl:template match ="*" >
<xsl:element name ="{local-name()}" >
<xsl:apply-templates select ="@* | node()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
OUTPUT:
<?xml version="1.0" encoding="utf-8"?>
<notifications>
<ActionId>04kf000000000FfAAI</ActionId>
<SessionId>true</SessionId>
<Notification>
<Id>04lf00000000xvQAAQ</Id>
<sObject>tableName<Id>001f0000006UzdCAAS</Id>
<Customer_Number__c>dummy1234</Customer_Number__c>
<FirstName>Test</FirstName>
<LastModifiedDate>2012-10-15T10:59:54.000Z</LastModifiedDate>
<LastName>Test</LastName>
</sObject>
</Notification>
</notifications>
這是不正確的,只是把在SObject中的XSI:TYPE的內容,並且我需要在它自己的字段中,例如這是所需的輸出:
<?xml version="1.0" encoding="utf-8"?>
<notifications>
<ActionId>04kf000000000FfAAI</ActionId>
<SessionId>true</SessionId>
<Notification>
<Id>04lf00000000xvQAAQ</Id>
<sObject>
<tableName>tableName</tableName>
<Id>001f0000006UzdCAAS</Id>
<Customer_Number__c>dummy1234</Customer_Number__c>
<FirstName>Test</FirstName>
<LastModifiedDate>2012-10-15T10:59:54.000Z</LastModifiedDate>
<LastName>Test</LastName>
</sObject>
</Notification>
</notifications>
謝謝,像夢一樣工作! – MMKD