How To Generate XML File....From the Table...

  • Hi,

    I Successfully Imported the Following XML File ...

    Again I Want to Export (Generate) the Same XML File Format...

    Using The Output Data (Table Value )....

    How To Generate XML File...

    pls Any one Help me....

    -------------------------------------------------------------------------------------

    DECLARE @idoc int

    DECLARE @doc xml

    DECLARE @xmldata Table (FirstName varchar(110),

    LastName varchar(210),

    Email varchar(110),

    Phone varchar(110),

    Position varchar(110),

    Branch varchar(110),

    Address varchar(110))

    SET @doc ='<Root>

    <Node FirstName="Andrew" LastName="Fuller" Email="afuller@contoso.com" Phone="(205) 555 - 9898" Position="CEO" Branch="TopManagement" Address="London, 120 Hanover Sq.">

    <Node FirstName="Jeremy" LastName="Boather" Email="jboather@contoso.com" Phone="(205) 555 - 9888" Position="President QA" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Anne" LastName="Dodsworth" Email="adodsworth@contoso.com" Phone="(205) 555 - 9887" Position="VP QA" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Alexander" LastName="Tuckings" Email="atuckings@contoso.com" Phone="(205) 555 - 9886" Position="Team Lead Team1" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Brenda" LastName="Smith" Email="bsmith@contoso.com" Phone="(205) 555 - 9885" Position="Senior QA" Branch="QA" Address="London, 120 Hanover Sq."/>

    </Node>

    <Node FirstName="Mary" LastName="Bird" Email="mbird@contoso.com" Phone="(205) 555 - 9885" Position="Team Lead Team2" Branch="QA" Address="London, 120 Hanover Sq."/>

    </Node>

    </Node>

    <Node FirstName="Steven" LastName="Buchanan" Email="sbuchanan@contoso.com" Phone="(205) 555 - 9897" Position="President Dev Dept." Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Robert" LastName="King" Email="rking@contoso.com" Phone="(205) 555 - 9896" Position="VP Dev Dept." Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Laura" LastName="Callahan" Email="lcallahan@contoso.com" Phone="(205) 555 - 9892" Position="Team Lead Team1" Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Jason" LastName="Roland" Email="jroland@contoso.com" Phone="(205) 555 - 9872" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    </Node>

    <Node FirstName="Eric" LastName="Danstin" Email="edanstin@contoso.com" Phone="(205) 555 - 9882" Position="Team Lead Team2" Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Elizabeth" LastName="Lincoln" Email="elincoln@contoso.com" Phone="(205) 555 - 9862" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    <Node FirstName="Margaret" LastName="Peacock" Email="mpeacock@contoso.com" Phone="(205) 555 - 9852" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    </Node>

    </Node>

    </Node>

    </Node>

    </Root>'

    EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

    Insert @xmldata

    SELECT *

    FROM OPENXML (@idoc,'//Node',1)

    WITH (FirstName varchar(110),

    LastName varchar(210),

    Email varchar(110),

    Phone varchar(110),

    Position varchar(110),

    Branch varchar(110),

    Address varchar(110))

    select * from @xmldata

    Regards,

    Saravanan.K.D

  • great job providing sample data!

    edit because another post by a different user posted the Identical xml, I've removed my post because it looks like homework

    http://www.sqlservercentral.com/Forums/Topic1394445-392-1.aspx

    And Another Edit:

    oops ok since it was actually the same user, but he changed his login between the accidental post and this one, I assumed two different users.,

    I guess that's ok, so *poof* here is is back again:

    i played with this, and it looks like this gets you what you are after, but it's missing the <Root> tag...not sure how to get that yet, but will pot it if I get it to work:

    select * from @xmldata FOR XML RAW('Node')

    the complete test set i was playing with...very helpful to look at some of the other formats to familiarize yourself:

    DECLARE @idoc int

    DECLARE @doc xml

    DECLARE @xmldata Table (FirstName varchar(110),

    LastName varchar(210),

    Email varchar(110),

    Phone varchar(110),

    Position varchar(110),

    Branch varchar(110),

    Address varchar(110))

    SET @doc ='<Root>

    <Node FirstName="Andrew" LastName="Fuller" Email="afuller@contoso.com" Phone="(205) 555 - 9898" Position="CEO" Branch="TopManagement" Address="London, 120 Hanover Sq.">

    <Node FirstName="Jeremy" LastName="Boather" Email="jboather@contoso.com" Phone="(205) 555 - 9888" Position="President QA" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Anne" LastName="Dodsworth" Email="adodsworth@contoso.com" Phone="(205) 555 - 9887" Position="VP QA" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Alexander" LastName="Tuckings" Email="atuckings@contoso.com" Phone="(205) 555 - 9886" Position="Team Lead Team1" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Brenda" LastName="Smith" Email="bsmith@contoso.com" Phone="(205) 555 - 9885" Position="Senior QA" Branch="QA" Address="London, 120 Hanover Sq."/>

    </Node>

    <Node FirstName="Mary" LastName="Bird" Email="mbird@contoso.com" Phone="(205) 555 - 9885" Position="Team Lead Team2" Branch="QA" Address="London, 120 Hanover Sq."/>

    </Node>

    </Node>

    <Node FirstName="Steven" LastName="Buchanan" Email="sbuchanan@contoso.com" Phone="(205) 555 - 9897" Position="President Dev Dept." Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Robert" LastName="King" Email="rking@contoso.com" Phone="(205) 555 - 9896" Position="VP Dev Dept." Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Laura" LastName="Callahan" Email="lcallahan@contoso.com" Phone="(205) 555 - 9892" Position="Team Lead Team1" Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Jason" LastName="Roland" Email="jroland@contoso.com" Phone="(205) 555 - 9872" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    </Node>

    <Node FirstName="Eric" LastName="Danstin" Email="edanstin@contoso.com" Phone="(205) 555 - 9882" Position="Team Lead Team2" Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Elizabeth" LastName="Lincoln" Email="elincoln@contoso.com" Phone="(205) 555 - 9862" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    <Node FirstName="Margaret" LastName="Peacock" Email="mpeacock@contoso.com" Phone="(205) 555 - 9852" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    </Node>

    </Node>

    </Node>

    </Node>

    </Root>'

    EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

    Insert @xmldata

    SELECT *

    FROM OPENXML (@idoc,'//Node',1)

    WITH (FirstName varchar(110),

    LastName varchar(210),

    Email varchar(110),

    Phone varchar(110),

    Position varchar(110),

    Branch varchar(110),

    Address varchar(110))

    select * from @xmldata

    select * from @xmldata FOR XML RAW('Node') --('Root') --RAW,AUTO,EXPLICIT,PATH

    select * from @xmldata FOR XML AUTO

    --select * from @xmldata FOR XML EXPLICIT

    select * from @xmldata FOR XML PATH('Root')

    select * from @xmldata FOR XML RAW('Root') ,ELEMENTS --('Root') --RAW,AUTO,EXPLICIT,PATH

    select * from @xmldata FOR XML AUTO ,ELEMENTS

    --select * from @xmldata FOR XML EXPLICIT

    select * from @xmldata FOR XML PATH('Root') ,ELEMENTS

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!

  • Your first post about this

    Your second post about this

    Your third post about this

    Your fourth post about this

    So this one makes five posts. . . Can I offer a suggestion? One post is all that is required, if you post in multiple places like you have this time, you'll fragment any posts that are attempting to answer you.


    Forever trying to learn
    My blog - http://www.cadavre.co.uk/
    For better, quicker answers on T-SQL questions, click on the following...http://www.sqlservercentral.com/articles/Best+Practices/61537/
    For better, quicker answers on SQL Server performance related questions, click on the following...http://www.sqlservercentral.com/articles/SQLServerCentral/66909/

  • hi Lowell,

    thanks 4 ur work... but i need the same xml file Generation....

    Here i have Mentioned Required File Structure....

    <Root>

    <Node FirstName="Andrew" LastName="Fuller" Email="afuller@contoso.com" Phone="(205) 555 - 9898" Position="CEO" Branch="TopManagement" Address="London, 120 Hanover Sq.">

    <Node FirstName="Jeremy" LastName="Boather" Email="jboather@contoso.com" Phone="(205) 555 - 9888" Position="President QA" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Anne" LastName="Dodsworth" Email="adodsworth@contoso.com" Phone="(205) 555 - 9887" Position="VP QA" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Alexander" LastName="Tuckings" Email="atuckings@contoso.com" Phone="(205) 555 - 9886" Position="Team Lead Team1" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Brenda" LastName="Smith" Email="bsmith@contoso.com" Phone="(205) 555 - 9885" Position="Senior QA" Branch="QA" Address="London, 120 Hanover Sq."/>

    </Node>

    <Node FirstName="Mary" LastName="Bird" Email="mbird@contoso.com" Phone="(205) 555 - 9885" Position="Team Lead Team2" Branch="QA" Address="London, 120 Hanover Sq."/>

    </Node>

    </Node>

    <Node FirstName="Steven" LastName="Buchanan" Email="sbuchanan@contoso.com" Phone="(205) 555 - 9897" Position="President Dev Dept." Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Robert" LastName="King" Email="rking@contoso.com" Phone="(205) 555 - 9896" Position="VP Dev Dept." Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Laura" LastName="Callahan" Email="lcallahan@contoso.com" Phone="(205) 555 - 9892" Position="Team Lead Team1" Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Jason" LastName="Roland" Email="jroland@contoso.com" Phone="(205) 555 - 9872" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    </Node>

    <Node FirstName="Eric" LastName="Danstin" Email="edanstin@contoso.com" Phone="(205) 555 - 9882" Position="Team Lead Team2" Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Elizabeth" LastName="Lincoln" Email="elincoln@contoso.com" Phone="(205) 555 - 9862" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    <Node FirstName="Margaret" LastName="Peacock" Email="mpeacock@contoso.com" Phone="(205) 555 - 9852" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    </Node>

    </Node>

    </Node>

    </Node>

    </Root>

    Regards,

    Saravanan.D

  • Any One Please Help me...

    please take it as Challenges...

    Regards,

    Saravanan.D

  • Any One Please Help me...

    please take it as Challenges...

    Regards,

    Saravanan.D

  • Any One Please Help me...

    please take it as Challenges...

    Regards,

    Saravanan.D

  • sarwaanmca (12/28/2012)


    Any One Please Help me...

    please take it as Challenges...

    Regards,

    Saravanan.D

    Please stop. You have been told repeatedly to not post so many threads and just continuing to beg for help is not going to work very well.

    It seems that you need some help. You have generated a number of threads on this topic and have received help in almost all of them. Your answer is now spread all over the posts you have created. The biggest issue I have seen is that you keep asking for help but don't provide much in the way of details. We also haven't seen that you have even tried to figure it out on your own. The people who post here are volunteers, that means we don't get paid to solve your issues. We do it because we enjoy the challenge and teaching others.

    Maybe if you take the time to be more clear in your requirements you might find somebody willing to take the time to help you.

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/

  • thanks 4 ur work... but i need the same xml file Generation....

    To be honest, this makes no sense. Why would you import and shred the XML data and then turn around and rebuild the XML? Just use the original XML data.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • sarwaanmca (12/10/2012)


    Hi,

    I Successfully Imported the Following XML File ...

    Again I Want to Export (Generate) the Same XML File Format...

    Using The Output Data (Table Value )....

    How To Generate XML File...

    pls Any one Help me....

    -------------------------------------------------------------------------------------

    DECLARE @idoc int

    DECLARE @doc xml

    DECLARE @xmldata Table (FirstName varchar(110),

    LastName varchar(210),

    Email varchar(110),

    Phone varchar(110),

    Position varchar(110),

    Branch varchar(110),

    Address varchar(110))

    SET @doc ='<Root>

    <Node FirstName="Andrew" LastName="Fuller" Email="afuller@contoso.com" Phone="(205) 555 - 9898" Position="CEO" Branch="TopManagement" Address="London, 120 Hanover Sq.">

    <Node FirstName="Jeremy" LastName="Boather" Email="jboather@contoso.com" Phone="(205) 555 - 9888" Position="President QA" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Anne" LastName="Dodsworth" Email="adodsworth@contoso.com" Phone="(205) 555 - 9887" Position="VP QA" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Alexander" LastName="Tuckings" Email="atuckings@contoso.com" Phone="(205) 555 - 9886" Position="Team Lead Team1" Branch="QA" Address="London, 120 Hanover Sq.">

    <Node FirstName="Brenda" LastName="Smith" Email="bsmith@contoso.com" Phone="(205) 555 - 9885" Position="Senior QA" Branch="QA" Address="London, 120 Hanover Sq."/>

    </Node>

    <Node FirstName="Mary" LastName="Bird" Email="mbird@contoso.com" Phone="(205) 555 - 9885" Position="Team Lead Team2" Branch="QA" Address="London, 120 Hanover Sq."/>

    </Node>

    </Node>

    <Node FirstName="Steven" LastName="Buchanan" Email="sbuchanan@contoso.com" Phone="(205) 555 - 9897" Position="President Dev Dept." Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Robert" LastName="King" Email="rking@contoso.com" Phone="(205) 555 - 9896" Position="VP Dev Dept." Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Laura" LastName="Callahan" Email="lcallahan@contoso.com" Phone="(205) 555 - 9892" Position="Team Lead Team1" Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Jason" LastName="Roland" Email="jroland@contoso.com" Phone="(205) 555 - 9872" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    </Node>

    <Node FirstName="Eric" LastName="Danstin" Email="edanstin@contoso.com" Phone="(205) 555 - 9882" Position="Team Lead Team2" Branch="Development" Address="London, 120 Hanover Sq.">

    <Node FirstName="Elizabeth" LastName="Lincoln" Email="elincoln@contoso.com" Phone="(205) 555 - 9862" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    <Node FirstName="Margaret" LastName="Peacock" Email="mpeacock@contoso.com" Phone="(205) 555 - 9852" Position="Senior Dev" Branch="Development" Address="London, 120 Hanover Sq.">

    </Node>

    </Node>

    </Node>

    </Node>

    </Node>

    </Root>'

    EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

    Insert @xmldata

    SELECT *

    FROM OPENXML (@idoc,'//Node',1)

    WITH (FirstName varchar(110),

    LastName varchar(210),

    Email varchar(110),

    Phone varchar(110),

    Position varchar(110),

    Branch varchar(110),

    Address varchar(110))

    select * from @xmldata

    Regards,

    Saravanan.K.D

    Does this all data come from an actual database object. If yes, please post that DDL and some sample data here. I had experience working with XML data. I am asking about the object because, it looks like the order / hierarchy of the employees is stored in a table.

    for ex: CEO as top level, President QA as next level and so on.. I hope you got my point.

    Thanks

    Good Luck 🙂 .. Visit www.sqlsaga.com for more t-sql code snippets and BI related how to articles.

  • Hmmm.... I thought this looked familiar. I recommend that we take our posts to the nearly identical post listed here http://www.sqlservercentral.com/Forums/Topic1401136-392-1.aspx#bm1401339 because it more correctly identifies the request and the reason why this task is actually impossible with the current data given.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

Viewing 11 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic. Login to reply