Home Forums Programming XML Problem reading all Attributes into SQL table RE: Problem reading all Attributes into SQL table

  • Here is an example XQuery to read both the values and the attributes.
    😎

    USE TEEST;
    GO
    SET NOCOUNT ON;

    DECLARE @TXML XML = '<?xml version="1.0" encoding="iso-8859-1"?>
    <ACES version="3.0">
    <App action="A" id="1">
    <BaseVehicle id="61" />
    <Qty>1</Qty>
    <PartType id="1684" />
    <MfrLabel>Ferodo</MfrLabel>
    <Position id="22" />
    <Part>FDB11</Part>
    </App>
    <App action="A" id="2">
    <BaseVehicle id="65" />
    <Aspiration id="6" />
    <Qty>1</Qty>
    <PartType id="1684" />
    <MfrLabel>Ferodo</MfrLabel>
    <Position id="22" />
    <Part>FDB451</Part>
    </App>
    <App action="A" id="3">
    <BaseVehicle id="65" />
    <Aspiration id="6" />
    <Qty>1</Qty>
    <PartType id="1684" />
    <MfrLabel>Ferodo</MfrLabel>
    <Position id="30" />
    <Part>FDB451</Part>
    </App>
    </ACES>';

    SELECT
      APP.DATA.value('(BaseVehicle/@id)[1]' ,'INT'         ) AS BaseVehicle
     ,APP.DATA.value('(Qty/text())[1]'      ,'INT'         ) AS Qty
     ,APP.DATA.value('(PartType/@id)[1]'    ,'INT'         ) AS PartType
     ,APP.DATA.value('(MfrLabel/text())[1]' ,'varchar(50)' ) AS MfrLabel
     ,APP.DATA.value('(Position/@id)[1]'    ,'INT'         ) AS Position
     ,APP.DATA.value('(Part/text())[1]'     ,'varchar(50)' ) AS Part
    FROM  @TXML.nodes('ACES/App') APP(DATA);