|
next
|
 Subject: XSL Selection Syntax help with namespace qualified elements Author: Ian Shuler Date: 17 Jun 2005 12:43 PM
|
Hi all,
I thought I'd re-phrase this post...I have the following xml file that will be transformed into a text string to be inserted into an SQL database via another operation.
<?xml version="1.0" encoding="UTF-8"?>
<returnsoap>
<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>
<queryResponse xmlns="urn:foo.soap.bar.com">
<result>
<done>true</done>
<queryLocator xsi:nil="true"/>
<records xsi:type="sf:sObject" xmlns:sf="urn:foo1.foo.soap.bar.com">
<sf:type>Opportunity</sf:type>
<sf:Id>006300000027mFGAAY</sf:Id>
<sf:Id>006300000027mFGAAY</sf:Id>
<sf:Name>USA Exports-Market Research</sf:Name>
<sf:Expiration_Date__c xsi:nil="true"/>
</records>
<size>1</size>
</result>
</queryResponse>
</soapenv:Body>
</soapenv:Envelope>
</returnsoap>
The xsl I have been using looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:sf="urn:foo1.foo.soap.bar.com">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:text>insert into `somedb`.`sometable`( col1, col2,col n ) values ("</xsl:text>
<xsl:apply-templates select="//records"/>
<xsl:for-each select="/">
<xsl:value-of select="."/>
<xsl:text>","</xsl:text>
</xsl:for-each>
<xsl:for-each select="/">
<xsl:value-of select="."/>
<xsl:text>","</xsl:text>
</xsl:for-each>
<xsl:for-each select="/">
<xsl:value-of select="/"/>
<xsl:text>")</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
I am getting output that is almost exactly what I need:
insert into `somedb`.`sometable`( col1, col2,col n ) values ("trueOpportunity006300000027mFGAAY006300000027mFGAAYUSA Exports-Market Research1","trueOpportunity006300000027mFGAAY006300000027mFGAAYUSA Exports-Market Research1","trueOpportunity006300000027mFGAAY006300000027mFGAAYUSA Exports-Market Research1")
I need to be able to select the sf: qualified elements only and I am running around in circles trying to figure this out...any help would be appreciated...
TIA, Ian
SFQresult(2).xml input xml
dbinserttest(2).xslt XSL to transform input
|
|
|