Need help with XML format in vb.net

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • abaker.junk@gmail.com

    Need help with XML format in vb.net

    I have the following code:

    Dim ds As New Data.DataSet("i nventory")
    Dim dt As New Data.DataTable( "desk")

    'dt.TableName = "desk"
    With dt
    .Columns.Add("i tem")
    .Columns.Add("q ty")
    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(d t)


    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>

  • sloan

    #2
    Re: Need help with XML format in vb.net


    1. Don't use a dataset. Its element based. Use XmlDocument instead (or
    XmlWriter or other)
    2. Transform it.
    http://sholliday.space s.live.com/Blog/cns!A68482B9628 A842A!148.entry



    <abaker.junk@gm ail.comwrote in message
    news:f6c69e12-b2ab-4360-8726-9d18c49d1ca2@a7 0g2000hsh.googl egroups.com...
    >I have the following code:
    >
    Dim ds As New Data.DataSet("i nventory")
    Dim dt As New Data.DataTable( "desk")
    >
    'dt.TableName = "desk"
    With dt
    .Columns.Add("i tem")
    .Columns.Add("q ty")
    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(d t)
    >
    >
    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>
    >

    Comment

    • abaker.junk@gmail.com

      #3
      Re: Need help with XML format in vb.net

      On Aug 21, 3:33 pm, "sloan" <sl...@ipass.ne twrote:
      1.  Don't use a dataset.  Its element based.  Use XmlDocument instead (or
      XmlWriter or other)
      2.  Transform it.http://sholliday.space s.live.com/Blog/cns!A68482B9628 A842A!148.entry
      >
      <abaker.j...@gm ail.comwrote in message
      >
      news:f6c69e12-b2ab-4360-8726-9d18c49d1ca2@a7 0g2000hsh.googl egroups.com...
      >
      >
      >
      I have the following code:
      >
             DimdsAsNewData. DataSet("invent ory")
             Dimdt AsNewData.DataT able("desk")
      >
             'dt.TableName = "desk"
             With dt
                 .Columns.Add("i tem")
                 .Columns.Add("q ty")
             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(d t)
      >
      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>- 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?

      Comment

      • abaker.junk@gmail.com

        #4
        Re: Need help with XML format in vb.net

        On Aug 28, 10:28 am, abaker.j...@gma il.com wrote:
        On Aug 21, 3:33 pm, "sloan" <sl...@ipass.ne twrote:
        >
        >
        >
        >
        >
        1.  Don't use a dataset.  Its element based.  Use XmlDocument instead (or
        XmlWriter or other)
        2.  Transform it.http://sholliday.space s.live.com/Blog/cns!A68482B9628 A842A!148.entry
        >
        <abaker.j...@gm ail.comwrote in message
        >
        news:f6c69e12-b2ab-4360-8726-9d18c49d1ca2@a7 0g2000hsh.googl egroups.com....
        >
        >I have the following code:
        >
               DimdsAsNewData. DataSet("invent ory")
               Dimdt AsNewData.DataT able("desk")
        >
               'dt.TableName = "desk"
               With dt
                   .Columns.Add("i tem")
                   .Columns.Add("q ty")
               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(d t)
        >
        At this point,ds.GetXml will produces the followingXML:
        >
        <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 withVB.netto make theXMLlook like this
        instead:
        >
        <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?- Hide quoted text -
        >
        - Show quoted text -
        I got the answer in another thread:

        <xsl:styleshe et
        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="inventor y">
        <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>

        Comment

        Working...