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
justin shellSubject: inserting values into empty tags
Author: justin shell
Date: 12 Mar 2008 05:28 PM
I am processing a file that looks like

<xml>
<fields>
<field name="field1">
<value>1</value>
</field>
<field name="field2">
<value/>
</field>
</fields>
</xml>

I am using XSLT to format the file for import to MS Access. The XSLT looks something like:

<xsl:template match="fields">
<table1>
<field1>
<<xsl:value-of select="field[@name='field1']/value"/>
</field1>
<field2>
<<xsl:value-of select="field[@name='field2']/value"/>
</field2>
</table1>
</xsl:template>

Some of the <value> tags return with values and others return empty--<value/>. My problem is that upon import, those empty tags create error messages.

Is there any way to loop through the new file and replace all <value/> tags with <value>0</value>?

I have some experience with XSLT but am still learning. Thanks for any help.

Postnext
Ivan PedruzziSubject: inserting values into empty tags
Author: Ivan Pedruzzi
Date: 12 Mar 2008 06:27 PM

Hi Justin,

See if the attached file helps.

Ivan Pedruzzi
Stylus Studio Team


DocumentTO_MSAccess.xsl

Postnext
justin shellSubject: inserting values into empty tags
Author: justin shell
Date: 13 Mar 2008 12:56 PM
Ivan,

Thanks for your reply. Your XSLT file does help solve my problem, but it creates a new one. Let me further explain the source xml and the desired output. The source xml comes from a PDF form. There are about 250 fields in the form and each field is stored in a separate <field> element. These fields are grouped under questions in the form. So question 1 has 1 field and question 2 has 26 fields. When I import these fields into Access, I want to create a new table for each question. So table 1 will have 1 field and table 2 will have 26. The XSLT that I wrote formats all the fields so that they import to the correct table. (See the attached file.) There is probably a simpler way to do it, but I am working with only a basic knowledge of XSLT and XPath.

The XSLT you provided solves most of my problems (it uses the @name to create elements, inserts 0 into empty tags) but does not sort by questions to create tables. As you can see in my XSLT, I did this manually. The source document shows fields are related to questions through the Q## of the name attribute. So all question 2 fields begin with "Q02_". Is there a way to group elements by the first three letters of the tag name? And then nest those elements under a <table> tag? If not, then is there a way, using my original XSLT, to cycle through all the elements and insert a 0 into empty tags?

Justin


Documentsource(1).xml
Source document

Documenttrans.xsl
transformation

Postnext
Ivan PedruzziSubject: inserting values into empty tags
Author: Ivan Pedruzzi
Date: 13 Mar 2008 03:28 PM

This is a typical grouping problem, see if the attached example put you on the right track.


Ivan Pedruzzi
Stylus Studio Team


DocumentTO_MSAccess2.xsl

Posttop
justin shellSubject: inserting values into empty tags
Author: justin shell
Date: 14 Mar 2008 11:54 AM
Ivan,

Thanks for the help with this. Looking through your stylesheet, I learned a lot.

Your stylesheet solved almost all my problems. I also need the <table> tags to be unique, and ideally to reference the question # (I forgot to mention that). After a little study of your stylesheet and a few mistakes on my part, I figured out how to include those tags. I removed the <table> tag and inserted an <xsl:element name="{substring(@nam, 1, 3)}"> tag. seems to work.

Thanks again for the help.
Justin

   
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.