XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
+ Stylus Studio Technical Forum (14621)
+ Website Feedback (249)
- XSLT Help and Discussion (7625)
-> + Use of before and after string (3) Sticky Topic
-> - How do I substitute element ty... (1)
-> + How does one add working days ... (4)
-> - Help, I have existing XLT and... (1)
-> + Need help on XSLT issue - (2)
-> + EDI to XML Conversion (7)
-> - XML To JSON Conversion using X... (1)
-> + Formatting Paragraphs to same ... (2)
-> - Grouping of records (1)
-> + Problems with xsd 1.1 (4)
-> + XML to HL7 mapping (3)
-> + XSLT 3 and Iterate (2)
-> + XSL-FO to PDF preview (3)
-> + java.lang.RuntimeException: Er... (2)
-> + Create Acroforms with Stylus X... (2)
-> + How to change XSLT parameter s... (3)
-> + how to change format of the da... (2)
-> + Search "Next 8 Results " doesn... (2)
-> - Support for Git (1)
-> + newbee (8)
-- [1-20] [21-40] [41-60] Next
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Ian ShulerSubject: 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


DocumentSFQresult(2).xml
input xml

Documentdbinserttest(2).xslt
XSL to transform input

Postnext
Ivan PedruzziSubject: XSL Selection Syntax help with namespace qualified elements
Author: Ivan Pedruzzi
Date: 17 Jun 2005 02:42 PM
Hi Ian,

Try the following.

Hope this helps
Ivan Pedruzzi
Stylus Studio Team


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sf="urn: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:for-each select="//sf:records/*">
<xsl:value-of select="concat('&quot;', . , '&quot;')"/>
<xsl:if test="position() &lt; last()">,</xsl:if>
<xsl:if test="position() = last()">)</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Postnext
Ian ShulerSubject: XSL Selection Syntax help with namespace qualified elements
Author: Ian Shuler
Date: 17 Jun 2005 03:10 PM
Ivan,

Once again I'm in your debt....thanks a million. Can you tell me where I went wrong in my original approach? In examining the 2 files side by side, I see that your approach was to eval the result returned from <xsl:for-each select="//sf:records/*"> using the <xsl:value-of select="concat('&quot;', . , '&quot;')"/> and xsl:if functions below it. I am assuming that I erred in my node selection, //records as opposed to //sf:records. Is this standard with any namespace qualified element when selecting?

Cheers...

Ian

Postnext
Ivan PedruzziSubject: XSL Selection Syntax help with namespace qualified elements
Author: Ivan Pedruzzi
Date: 17 Jun 2005 04:08 PM

Before addressing any element outside the defautl namespace you need the define the namespace.
I have bound the sf prefix in the stylesheet element

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sf="urn:foo.soap.bar.com">


Ivan

Posttop
Ian ShulerSubject: XSL Selection Syntax help with namespace qualified elements
Author: Ian Shuler
Date: 17 Jun 2005 04:29 PM
Ah...makes sense. Thanks for the help..

Ian

   
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.