Heim > Datenbank > MySQL-Tutorial > Wie eliminiere ich redundante Namespaces in verschachtelten FOR XML PATH-Abfragen?

Wie eliminiere ich redundante Namespaces in verschachtelten FOR XML PATH-Abfragen?

Susan Sarandon
Freigeben: 2025-01-05 17:57:40
Original
300 Leute haben es durchsucht

How to Eliminate Redundant Namespaces in Nested FOR XML PATH Queries?

Umgang mit redundanten Namespaces in FOR XML PATH mit verschachtelten Abfragen

In FOR XML PATH-Abfragen, bei denen ein Standard-Namespace mit WITH XMLNAMESPACES deklariert wird, redundant Namespace-Deklarationen können in Knoten der obersten Ebene verschachtelter Abfragen erscheinen. Um dieses Problem anzugehen, besteht eine wirksame Lösung darin, FOR XML EXPLICIT zu nutzen, wie unten gezeigt:

DECLARE @Order TABLE (OrderID INT, OrderDate DATETIME)
DECLARE @OrderDetail TABLE (OrderID INT, ItemID VARCHAR( 1), Name VARCHAR(50), Qty INT)

-- Initialisieren Sie die Tabellen
INSERT @Order VALUES (1, '2010-01-01'), (2, '2010-01-02')
INSERT @OrderDetail VALUES
(1, 'A', 'Drink ', 5),
(1, 'B', 'Cup', 2),
(2, 'A', 'Getränk', 2),
(2, 'C', 'Stroh', 1),
(2, 'D', 'Serviette', 1)

-- Führen Sie eine verschachtelte FOR XML PATH-Abfrage durch
DECLARE @xml XML = (
SELECT

OrderID AS "@OrderID",
(
  SELECT
    ItemID AS "@ItemID",
    Name AS "data()"
  FROM @OrderDetail
  WHERE OrderID = o.OrderID
  FOR XML PATH('Item'), TYPE
)
Nach dem Login kopieren

FROM @Order o
FOR XML PATH('Order'), ROOT('dummyTag'), TYPE
)

-- Redundanten Namespace entfernen und Wurzelknoten mit FOR XML EXPLICIT
SELECT
1 AS Tag,
NULL AS Übergeordnet,
@xml AS [xml!1!!xmltext],
'http://test.com/order' AS [xml!1!xmlns]
FÜR XML EXPLICIT

Diese Kombination von Abfragen entfernt effektiv den redundanten Namespace aus der verschachtelten Abfrage und behält gleichzeitig die erforderlichen Deklarationen auf der obersten Ebene bei. Das Ergebnis ist ein wohlgeformtes XML-Dokument mit einem einzigen, ordnungsgemäß benannten Stammelement.

Das obige ist der detaillierte Inhalt vonWie eliminiere ich redundante Namespaces in verschachtelten FOR XML PATH-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage