Heim Backend-Entwicklung XML/RSS-Tutorial Detaillierte Erläuterung von Codebeispielen für den RAW-Modus von FOR XML

Detaillierte Erläuterung von Codebeispielen für den RAW-Modus von FOR XML

Mar 22, 2017 pm 05:03 PM

Beschreibung:

Der Rohmodus konvertiert jede Zeile im Abfrageergebnissatz in ein XML-Element mit dem Elementnamen und wandelt die Spalten jeder Zeile in Zeilenattribute um.

Eine XML-Hierarchie kann durch Schreiben einer verschachtelten FOR XML-Abfrage generiert werden

Standardmäßig werden alle Nicht-Null-Werte als Attribute des -Elements zugeordnet.

Wenn Sie die Daten in der Abfrageergebnismenge in untergeordnete Elemente des konvertieren müssen, müssen Sie die Elements-Direktive

verwenden

Einzelheiten finden Sie im Beispiel:
FOR XML
RAW [ ('ElementName') ] 
    [ 
       <CommonDirectives> 
       [ , { XMLDATA | XMLSCHEMA [ (&#39;TargetNameSpaceURI&#39;) ]} ] 
       [ , ELEMENTS [ XSINIL | ABSENT ] 
    ] <CommonDirectives> ::= 
   [ , BINARY BASE64 ]
   [ , TYPE ]
   [ , ROOT [ (&#39;RootName&#39;) ] ]
Nach dem Login kopieren

Erstellen Sie eine Tabellenbasis mit der folgenden Struktur:

Fügen Sie Tabellendaten wie folgt ein:
列名数据类型允许空
idint允许
bodynvarchar(50)允许

idbody
1aaaa
2bbbb
3cccc
4
Beispiel:

A. Geben Sie die Informationen der Abfragedaten zurück und verwenden Sie den for XML-Rohmodus

/*
结果:
    <row id="1" body="aaaa" />
    <row id="2" body="bbbb" />
    <row id="3" body="dddd" />
    <row id="4" />
*/select * from base for xml raw;
Nach dem Login kopieren
, um die zu erstellen Die Ergebnismenge wird durch Angabe der ELEMENTS-Direktive in Form von Unterelementen angezeigt.

/*
结果:
    <row>
      <id>1</id>
      <body>aaaa</body>
    </row>
    <row>
      <id>2</id>
      <body>bbbb</body>
    </row>
    <row>
      <id>3</id>
      <body>dddd</body>
    </row>
    <row>
      <id>4</id>
    </row>
*/select * from base for xml raw,elements;
Nach dem Login kopieren
Uns ist aufgefallen, dass der Text mit der ID 4 in diesem Beispielsatz nicht angezeigt wird

Der Grund dafür ist, dass bei Verwendung des Elements-Befehls der folgende Befehl standardmäßig nicht angegeben wird. Bei Verwendung von abscent werden zu diesem Zeitpunkt keine Elemente für Nullwerte erstellt

Im folgenden Beispiel Satz, Nullwerte können in XML angezeigt werden, indem Elemente xsinil gleichzeitig und xsinil-Anweisungen angegeben werden, um Elemente mit Nullspaltenwerten zu erzeugen

Für jedes Datenelement wird es als -Element angezeigt, was den Eindruck erweckt, dass der Name des ein anderer ist.
/*
结果:
    <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <id>1</id>
      <body>aaaa</body>
    </row>
    <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <id>2</id>
      <body>bbbb</body>
    </row>
    <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <id>3</id>
      <body>dddd</body>
    </row>
    <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <id>4</id>
      <body xsi:nil="true" />
    </row>
*/select * from base for xml raw,elements xsinil;
Nach dem Login kopieren
C. Benennen Sie das -Element um

Wir alle wissen, dass jede XML-Datei ein Stammelement hat. Wie fügen wir sein Stammelement zu diesem XML-Text hinzu?
/*
结果:
    <baseinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <id>1</id>
      <body>aaaa</body>
    </baseinfo>
    <baseinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <id>2</id>
      <body>bbbb</body>
    </baseinfo>
    <baseinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <id>3</id>
      <body>dddd</body>
    </baseinfo>
    <baseinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <id>4</id>
      <body xsi:nil="true" />
    </baseinfo>
*/select * from base for xml raw(&#39;baseinfo&#39;),elements xsinil;
Nach dem Login kopieren
D. Um das Root-Element für die von for xml generierte XML-Datei anzugeben, kann

mit dem Root-Befehl angegeben werden. Das Standard-Root-Element ist

Derzeit scheint das generierte XML-Ergebnis sehr gut zu sein, aber wenn wir die Body-Spalte in der Datenbank in XML ändern möchten, wie ändert man das -Element?
/*
结果:
    <base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <baseinfo>
        <id>1</id>
        <body>aaaa</body>
      </baseinfo>
      <baseinfo>
        <id>2</id>
        <body>bbbb</body>
      </baseinfo>
      <baseinfo>
        <id>3</id>
        <body>dddd</body>
      </baseinfo>
      <baseinfo>
        <id>4</id>
        <body xsi:nil="true" />
      </baseinfo>
    </base>
*/select * from base for xml raw(&#39;baseinfo&#39;),root(&#39;base&#39;),elements xsinil;
Nach dem Login kopieren
E. Ändern Sie den Elementnamen

Das aktuelle Ergebnis entspricht im Wesentlichen dem Grundformat einer XML-Datei. Wir stellen uns vor, dass wir keine Spaltennamen für die ID angeben und Körper, noch geben Sie Stammelementnamen an, noch geben Sie Elementnamen an, welche Nachteile werden auftreten? Der Nullwert mit der ID 4 wird nicht angezeigt.
/*
结果:
    <base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <baseinfo>
        <id>1</id>
        <data>aaaa</data>
      </baseinfo>
      <baseinfo>
        <id>2</id>
        <data>bbbb</data>
      </baseinfo>
      <baseinfo>
        <id>3</id>
        <data>dddd</data>
      </baseinfo>
      <baseinfo>
        <id>4</id>
        <data xsi:nil="true" />
      </baseinfo>
    </base>
*/select id,body data from base for xml raw(&#39;baseinfo&#39;),root(&#39;base&#39;),elements xsinil;
Nach dem Login kopieren
Seitdem scheint es keinen Spaltennamen zu geben. Der vorherige Satz kann noch etwas modifiziert werden

/*
结果:
    1aaaa2bbbb3dddd4
*/
--因为id为int类型,为使id不出现列名,我们使id+0
--因为body为nvarchar类型,为使body不出现列名,我们使body+&#39;&#39;select id+0,body+&#39;&#39; from base for xml raw(&#39;&#39;), elements;
Nach dem Login kopieren

/*
结果:
    1,aaaa;2,bbbb;3,dddd;4,null;
*/select id+0,&#39;,&#39;,isnull(body,&#39;null&#39;)+&#39;&#39;,&#39;;&#39; from base for xml raw(&#39;&#39;),elements;
Nach dem Login kopieren
Modifizieren wir ihn noch einmal, damit das Ergebnis anders aussieht

Jetzt können Sie sehen, dass wir entsprechend unseren Anforderungen kombinieren können, um die von uns benötigten Ergebnisse zu generieren.
/*
结果:
    1,aaaa;2,bbbb;3,dddd;4,null;
*/select convert(nvarchar,id)+&#39;,&#39;+isnull(body,&#39;null&#39;)+&#39;;&#39; from base for xml raw(&#39;&#39;),elements;
Nach dem Login kopieren
In SQLServer2005 werden XML-Daten bereits vom Typ unterstützt, daher können Sie die schreiben TYPE-Anweisung zum Zurückgeben der Ergebnisse der FOR XML-Abfrage im XML-Datentyp, zum Beispiel:

Abschließend wird ein häufig verwendetes Beispiel verwendet, um die Anwendung des Musters für XML Raw vorzustellen.
/*
结果:
    {1,aaaa}{2,bbbb}{3,dddd}{4,null}
*/select &#39;{&#39;+convert(nvarchar,id)+&#39;,&#39;+isnull(body,&#39;null&#39;)+&#39;}&#39; from base for xml raw(&#39;&#39;),elements;
Nach dem Login kopieren
Erstellen Sie die Schülertabelle Student. Die Tabellenstruktur ist wie folgt:

Fügen Sie die Tabellendaten wie folgt ein:

declare @string nvarchar(1000)declare @xml xml/*
    消息257,级别16,状态3,第8行
    不允许从数据类型xml到nvarchar的隐式转换。请使用CONVERT函数来运行此查询。
*/
--set @string=(select id,body from base for xml raw,type)set @xml=(select id,body from base for xml raw,type)
Nach dem Login kopieren

建课程表sclass,表结构如下:

列名数据类型允许空
cidint允许
namenvarchar(50)允许

插入表数据如下:

idname
1语文
2数学
3英语

建student_class表,表结构如下:

列名数据类型允许空
sidint
cidint

插入数据如下:

cidsid
11
12
13
21
32
33

至此,数据结果是:

姓名课程
张三语文
张三数学
张三英语
李四语文
王五数学
王五英语

我们需要最后的结果形式如下:

姓名课程
张三语文,数学,英语
李四语文
王五数学,英语

该如何实现呢?

/*
结果:
    张三    语文,数学,英语
    李四    语文
    王五    数学,英语
*/select [name],            
stuff(
(                    
select &#39;,&#39;+[name]                    
from sclass                    
where cid in (                                    
select cid                                    
from student_class                                    
where student.sid=student_class.sid                                
)                    
for xml raw(&#39;&#39;),elements                
),            
1,1,&#39;&#39;) sclassfrom student
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Codebeispielen für den RAW-Modus von FOR XML. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

17 Möglichkeiten, den Bluescreen „kernel_security_check_failure' zu beheben 17 Möglichkeiten, den Bluescreen „kernel_security_check_failure' zu beheben Feb 12, 2024 pm 08:51 PM

Kernelsecuritycheckfailure (Kernel-Check-Fehler) ist eine relativ häufige Art von Stoppcode. Unabhängig vom Grund führt der Bluescreen-Fehler jedoch dazu, dass viele Benutzer diese Seite sorgfältig vorstellen. 17 Lösungen für den Bluescreen „kernel_security_check_failure“ Methode 1: Entfernen Sie alle externen Geräte Wenn ein externes Gerät, das Sie verwenden, nicht mit Ihrer Windows-Version kompatibel ist, kann der Bluescreen-Fehler „Kernelsecuritycheckfailure“ auftreten. Dazu müssen Sie alle externen Geräte trennen, bevor Sie versuchen, Ihren Computer neu zu starten.

Kann ich eine XML-Datei mit PowerPoint öffnen? Kann ich eine XML-Datei mit PowerPoint öffnen? Feb 19, 2024 pm 09:06 PM

Können XML-Dateien mit PPT geöffnet werden? XML, Extensible Markup Language (Extensible Markup Language), ist eine universelle Auszeichnungssprache, die häufig im Datenaustausch und in der Datenspeicherung verwendet wird. Im Vergleich zu HTML ist XML flexibler und kann eigene Tags und Datenstrukturen definieren, wodurch die Speicherung und der Austausch von Daten komfortabler und einheitlicher werden. PPT oder PowerPoint ist eine von Microsoft entwickelte Software zum Erstellen von Präsentationen. Es bietet eine umfassende Möglichkeit

Verwendung von Python zum Zusammenführen und Deduplizieren von XML-Daten Verwendung von Python zum Zusammenführen und Deduplizieren von XML-Daten Aug 07, 2023 am 11:33 AM

Verwenden von Python zum Zusammenführen und Deduplizieren von XML-Daten XML (eXtensibleMarkupLanguage) ist eine Auszeichnungssprache, die zum Speichern und Übertragen von Daten verwendet wird. Bei der Verarbeitung von XML-Daten müssen wir manchmal mehrere XML-Dateien zu einer zusammenführen oder doppelte Daten entfernen. In diesem Artikel wird erläutert, wie Sie mit Python die Zusammenführung und Deduplizierung von XML-Daten implementieren und entsprechende Codebeispiele angeben. 1. XML-Daten zusammenführen Wenn wir mehrere XML-Dateien haben, müssen wir sie zusammenführen

XML-Daten mit Python filtern und sortieren XML-Daten mit Python filtern und sortieren Aug 07, 2023 pm 04:17 PM

Implementieren des Filterns und Sortierens von XML-Daten mit Python Einführung: XML ist ein häufig verwendetes Datenaustauschformat, das Daten in Form von Tags und Attributen speichert. Bei der Verarbeitung von XML-Daten müssen wir die Daten häufig filtern und sortieren. Python bietet viele nützliche Tools und Bibliotheken zum Verarbeiten von XML-Daten. In diesem Artikel wird erläutert, wie Sie mit Python XML-Daten filtern und sortieren. Lesen der XML-Datei Bevor wir beginnen, müssen wir die XML-Datei lesen. Python verfügt über viele XML-Verarbeitungsbibliotheken.

Konvertieren Sie XML-Daten in Python in das CSV-Format Konvertieren Sie XML-Daten in Python in das CSV-Format Aug 11, 2023 pm 07:41 PM

Konvertieren Sie XML-Daten in Python in das CSV-Format. XML (ExtensibleMarkupLanguage) ist eine erweiterbare Auszeichnungssprache, die häufig zur Datenspeicherung und -übertragung verwendet wird. CSV (CommaSeparatedValues) ist ein durch Kommas getrenntes Textdateiformat, das häufig für den Datenimport und -export verwendet wird. Bei der Datenverarbeitung ist es manchmal erforderlich, XML-Daten zur einfachen Analyse und Verarbeitung in das CSV-Format zu konvertieren. Python ist mächtig

Importieren Sie XML-Daten mit PHP in die Datenbank Importieren Sie XML-Daten mit PHP in die Datenbank Aug 07, 2023 am 09:58 AM

Importieren von XML-Daten in die Datenbank mit PHP Einführung: Während der Entwicklung müssen wir häufig externe Daten zur weiteren Verarbeitung und Analyse in die Datenbank importieren. Als häufig verwendetes Datenaustauschformat wird XML häufig zum Speichern und Übertragen strukturierter Daten verwendet. In diesem Artikel wird erläutert, wie Sie mit PHP XML-Daten in eine Datenbank importieren. Schritt 1: XML-Datei analysieren Zuerst müssen wir die XML-Datei analysieren und die erforderlichen Daten extrahieren. PHP bietet mehrere Möglichkeiten zum Parsen von XML. Die am häufigsten verwendete davon ist die Verwendung von Simple

Python implementiert die Konvertierung zwischen XML und JSON Python implementiert die Konvertierung zwischen XML und JSON Aug 07, 2023 pm 07:10 PM

Python implementiert die Konvertierung zwischen XML und JSON. Einführung: Im täglichen Entwicklungsprozess müssen wir häufig Daten zwischen verschiedenen Formaten konvertieren. XML und JSON sind gängige Datenaustauschformate. In Python können wir verschiedene Bibliotheken zum Konvertieren zwischen XML und JSON verwenden. In diesem Artikel werden mehrere häufig verwendete Methoden mit Codebeispielen vorgestellt. 1. Um XML in Python in JSON zu konvertieren, können wir das Modul xml.etree.ElementTree verwenden

Behandeln von Fehlern und Ausnahmen in XML mit Python Behandeln von Fehlern und Ausnahmen in XML mit Python Aug 08, 2023 pm 12:25 PM

Behandeln von Fehlern und Ausnahmen in XML mit Python XML ist ein häufig verwendetes Datenformat zum Speichern und Darstellen strukturierter Daten. Wenn wir Python zum Verarbeiten von XML verwenden, können manchmal Fehler und Ausnahmen auftreten. In diesem Artikel werde ich die Verwendung von Python zur Behandlung von Fehlern und Ausnahmen in XML vorstellen und einige Beispielcodes als Referenz bereitstellen. Verwenden Sie Try-Exception-Anweisungen, um XML-Parsing-Fehler abzufangen. Wenn wir Python zum Parsen von XML verwenden, können manchmal Fehler auftreten

See all articles