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
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext 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

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
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.