Frage

Mein SQL ist sehr einfach

Wählen Sie ID als [Mitarbeiter -ID], Empname als [Mitarbeitername], Sal als [Gehalt] von EMP für XML Auto, Elements, Root ('Kunden') aus

Wenn ich diese SQL ausführe, bekomme ich Ausgabe im XML -Format. Die XML -Ausgabe ist

<customers>
<Emp>
  <Employee_x0020_ID>1</Employee_x0020_ID>
  <Employee_x0020_Name>Tridip</Employee_x0020_Name>
  <Salary>2500</Salary>
</Emp>
<Emp>
  <Employee_x0020_ID>2</Employee_x0020_ID>
  <Employee_x0020_Name>Ari</Employee_x0020_Name>
  <Salary>4000</Salary>
</Emp>
<Emp>
  <Employee_x0020_ID>3</Employee_x0020_ID>
  <Employee_x0020_Name>Dibyendu</Employee_x0020_Name>
  <Salary>3500</Salary>
</Emp>
</customers>

Wenn Sie den XML -angegebenen Namen sehen, können Sie verstehen, dass Feldname aufgrund des Platzes dynamisch generiert wird.u003CEmployee_x0020_ID> 1u003C/Employee_x0020_ID> Dies wird dynamisch erzeugt, aber ich möchte, dass es so erzeugt werden sollte wieu003CEmployee ID> 1u003C/Employee ID> . Ich möchte, dass Platz im XML -angegebenen Namen gewartet werden sollte. Also bitte sag mir, was ich tun soll ........ danke

War es hilfreich?

Lösung

Hier ist die Ausgabe, die Sie suchen, um XML zu sein. Sie können es nicht einmal in einem Parser an XML übertragen (zumindest sollte es nicht - es wird nicht in SQL Server).

;with emp(ID, EmpName, Sal) as (select
    1, 'tridip', 2500 union all select
    2, 'ari', 4000)

select replace(convert(varchar(max),(
    select ID as [Employee ID], EmpName as [Employee Name], Sal as [Salary] 
    from Emp 
    FOR XML AUTO, ELEMENTS, ROOT('customers'))),
    '_x0020_', ' ')

Output (formatiert für Klarheit - SQL Server gibt alles in einer Zeile zurück)

<customers><Emp><Employee ID>1</Employee ID><Employee Name>tridip
</Employee Name><Salary>2500</Salary></Emp><Emp>
<Employee ID>2</Employee ID><Employee Name>ari</Employee Name>
<Salary>4000</Salary></Emp></customers>

Andere Tipps

Aus XML -Elemente bei W3schools:

XML -Elemente müssen diese Namensregeln befolgen:

  • Namen können Buchstaben, Zahlen und andere Zeichen enthalten
  • Namen können nicht mit einer Nummer oder einem Zeichenzeichen beginnen
  • Namen können nicht mit den Buchstaben XML (oder XML oder XML usw.) beginnen
  • Namen können keine Räume enthalten

Jeder Name kann verwendet werden, keine Wörter sind reserviert.

(Betonung hinzugefügt)

Ich denke, das ist die gleiche Frage?Für XML Auto- und Spaltenname mit Platzproblem in SQL Server 2005

Die Antwort ist die gleiche. Sie können keinen Platz in einem XML -Tag -Namen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top