Need help with XML format in vb.net
Question posted by: abaker.junk@gmail.com
(Guest)
on
August 21st, 2008 08:25 PM
I have the following code:
Dim ds As New Data.DataSet("inventory")
Dim dt As New Data.DataTable("desk")
'dt.TableName = "desk"
With dt
.Columns.Add("item")
.Columns.Add("qty")
End With
dt.Rows.Add(New Object() {"Paper Clip", 100})
dt.Rows.Add(New Object() {"Stapler", 1})
dt.Rows.Add(New Object() {"Tape", 2})
ds.Tables.Add(dt)
At this point, ds.GetXml will produces the following XML:
<inventory>
<desk>
<item>Paper Clip</item>
<qty>100</qty>
</desk>
<desk>
<item>Stapler</item>
<qty>1</qty>
</desk>
<desk>
<item>Tape</item>
<qty>2</qty>
</desk>
</inventory>
What is the best way with VB.net to make the XML look like this
instead:
<inventory>
<desk>
<item qty='100'>Paper Clip</item>
<item qty='1'>Stapler</item>
<item qty='2'>Tape</item>
</desk>
</inventory>
3
Answers Posted
1. Don't use a dataset. Its element based. Use XmlDocument instead (or
XmlWriter or other)
2. Transform it.
http://sholliday.spaces.live.com/Blog/cns!A68482B9628A842A!148.entry
<abaker.junk@gmail.comwrote in message
news:f6c69e12-b2ab-4360-8726-9d18c49d1ca2@a70g2000hsh.googlegroups.com...
Quote:
Originally Posted by
>I have the following code:
>
Dim ds As New Data.DataSet("inventory")
Dim dt As New Data.DataTable("desk")
>
'dt.TableName = "desk"
With dt
.Columns.Add("item")
.Columns.Add("qty")
End With
dt.Rows.Add(New Object() {"Paper Clip", 100})
dt.Rows.Add(New Object() {"Stapler", 1})
dt.Rows.Add(New Object() {"Tape", 2})
ds.Tables.Add(dt)
>
>
At this point, ds.GetXml will produces the following XML:
>
<inventory>
<desk>
<item>Paper Clip</item>
<qty>100</qty>
</desk>
<desk>
<item>Stapler</item>
<qty>1</qty>
</desk>
<desk>
<item>Tape</item>
<qty>2</qty>
</desk>
</inventory>
>
What is the best way with VB.net to make the XML look like this
instead:
>
<inventory>
<desk>
<item qty='100'>Paper Clip</item>
<item qty='1'>Stapler</item>
<item qty='2'>Tape</item>
</desk>
</inventory>
>
On Aug 21, 3:33*pm, "sloan" <sl...@ipass.netwrote:
Quote:
Originally Posted by
1. *Don't use a dataset. *Its element based. *Use XmlDocument instead (or
XmlWriter or other)
2. *Transform it.http://sholliday.spaces.live.com/Blog/cns!A68482B9628A842A!148.entry
>
<abaker.j...@gmail.comwrote in message
>
news:f6c69e12-b2ab-4360-8726-9d18c49d1ca2@a70g2000hsh.googlegroups.com...
>
>
>
Quote:
Originally Posted by
I have the following code:
>
Quote:
Originally Posted by
* * * *DimdsAsNewData.DataSet("inventory")
* * * *Dimdt AsNewData.DataTable("desk")
>
Quote:
Originally Posted by
* * * *'dt.TableName = "desk"
* * * *With dt
* * * * * *.Columns.Add("item")
* * * * * *.Columns.Add("qty")
* * * *End With
* * * *dt.Rows.Add(NewObject() {"Paper Clip", 100})
* * * *dt.Rows.Add(NewObject() {"Stapler", 1})
* * * *dt.Rows.Add(NewObject() {"Tape", 2})
* * * *ds.Tables.Add(dt)
>
Quote:
Originally Posted by
At this point,ds.GetXml will produces the following XML:
>
Quote:
Originally Posted by
<inventory>
*<desk>
* *<item>Paper Clip</item>
* *<qty>100</qty>
*</desk>
*<desk>
* *<item>Stapler</item>
* *<qty>1</qty>
*</desk>
*<desk>
* *<item>Tape</item>
* *<qty>2</qty>
*</desk>
</inventory>
>
Quote:
Originally Posted by
What is the best way with VB.net to make the XML look like this
instead:
>
Quote:
Originally Posted by
<inventory>
<desk>
*<item qty='100'>Paper Clip</item>
*<item qty='1'>Stapler</item>
*<item qty='2'>Tape</item>
</desk>
</inventory>- Hide quoted text -
>
- Show quoted text -
Can someone give me an xslt file that I can use to convert the first
example to the second example?
On Aug 28, 10:28*am, abaker.j...@gmail.com wrote:
Quote:
Originally Posted by
On Aug 21, 3:33*pm, "sloan" <sl...@ipass.netwrote:
>
>
>
>
>
Quote:
Originally Posted by
1. *Don't use a dataset. *Its element based. *Use XmlDocument instead (or
XmlWriter or other)
2. *Transform it.http://sholliday.spaces.live.com/Blog/cns!A68482B9628A842A!148.entry
>
Quote:
Originally Posted by
<abaker.j...@gmail.comwrote in message
>
Quote:
Originally Posted by
news:f6c69e12-b2ab-4360-8726-9d18c49d1ca2@a70g2000hsh.googlegroups.com....
>
Quote:
Originally Posted by
Quote:
Originally Posted by
>I have the following code:
>
Quote:
Originally Posted by
Quote:
Originally Posted by
* * * *DimdsAsNewData.DataSet("inventory")
* * * *Dimdt AsNewData.DataTable("desk")
>
Quote:
Originally Posted by
Quote:
Originally Posted by
* * * *'dt.TableName = "desk"
* * * *With dt
* * * * * *.Columns.Add("item")
* * * * * *.Columns.Add("qty")
* * * *End With
* * * *dt.Rows.Add(NewObject() {"Paper Clip", 100})
* * * *dt.Rows.Add(NewObject() {"Stapler", 1})
* * * *dt.Rows.Add(NewObject() {"Tape", 2})
* * * *ds.Tables.Add(dt)
>
Quote:
Originally Posted by
Quote:
Originally Posted by
At this point,ds.GetXml will produces the followingXML:
>
Quote:
Originally Posted by
Quote:
Originally Posted by
<inventory>
*<desk>
* *<item>Paper Clip</item>
* *<qty>100</qty>
*</desk>
*<desk>
* *<item>Stapler</item>
* *<qty>1</qty>
*</desk>
*<desk>
* *<item>Tape</item>
* *<qty>2</qty>
*</desk>
</inventory>
>
Quote:
Originally Posted by
Quote:
Originally Posted by
What is the best way withVB.netto make theXMLlook like this
instead:
>
Quote:
Originally Posted by
Quote:
Originally Posted by
<inventory>
<desk>
*<item qty='100'>Paper Clip</item>
*<item qty='1'>Stapler</item>
*<item qty='2'>Tape</item>
</desk>
</inventory>- Hide quoted text -
>
Quote:
Originally Posted by
- Show quoted text -
>
Can someone give me an xslt file that I can use to convert the first
example to the second example?- Hide quoted text -
>
- Show quoted text -
I got the answer in another thread:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="inventory">
<xsl:copy>
<desk>
<xsl:apply-templates select="desk/item"/>
</desk>
</xsl:copy>
</xsl:template>
<xsl:template match="item">
<item qty="{following-sibling::qty}">
<xsl:apply-templates/>
</item>
</xsl:template>
</xsl:stylesheet>
|
|
|
What is Bytes?
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 197,004 network members.
Top Community Contributors
|