Формат XML в SQL Server - PullRequest
       1

Формат XML в SQL Server

1 голос
/ 19 мая 2011

Я хотел бы обратиться за помощью в отношении формата с XML:

<TestFiles>
  <Tests>
    <Emp>
      <FName>Good</FName>
      <LName>Boys</LName>
      <Traits>
        <Trait> 
          <Trait1></Trait1>
          <TraitDesc></TraitDesc>
        <Trait>
        <Trait>
          <Trait2></Trait2>
          <TraitDesc></TraitDesc>
        <Trait>   
        <Trait>
          <Trait3></Trait3>
          <TraitDesc></TraitDesc>
        <Trait>   
      </Traits>  
      <Phone>897-122-222</Phone>
   </Emp>
  </Tests>
</TestFiles>

У меня проблемы с форматированием моего оператора select. Любое предложение или помощь действительно приветствуются.

1 Ответ

2 голосов
/ 19 мая 2011

С помощью запроса, подобного следующему:

SELECT  
    dbo.emp.FName ,
    dbo.emp.LName ,
    (SELECT 
        ID AS '@ID',
        TraitDesc 
     FROM dbo.Trait t
     WHERE t.EmpID = emp.ID
     FOR XML PATH('Trait'), TYPE) AS 'Traits',
    dbo.emp.Phone
FROM
    emp
FOR XML PATH('Emp'), ROOT('Tests')

, вы можете получить вывод, подобный следующему:

<Tests>
   <Emp>
      <FName>Good</FName>
      <LName>Boys</LName>
      <Traits>
         <Trait ID="1">
            <TraitDesc>Trait #1</TraitDesc>
         </Trait>
         <Trait ID="2">
            <TraitDesc>Trait #2</TraitDesc>
         </Trait>
         <Trait ID="3">
            <TraitDesc>Trait #3</TraitDesc>
         </Trait>
      </Traits>
      <Phone>897-122-222</Phone>
   </Emp>
</Tests>

Что вы, вероятно, не можете сделать (или, по крайней мере, без грязных хаков и грязногокод) имеет различные <Trait1>, <Trait2>, <Trait3> теги XML для каждого дочернего узла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...