Colonne con il nome di un test di nodo XPathColumns with the Name of an XPath Node Test

Se il nome della colonna è uno dei test di nodo XPath, il mapping del contenuto viene eseguito come illustrato nella tabella seguente.If the column name is one of the XPath node tests, the content is mapped as shown in the following table. Quando il nome della colonna è un test di nodo XPath, il mapping viene eseguito tra il contenuto e il nodo corrispondente.When the column name is an XPath node test, the content is mapped to the corresponding node. Se il tipo SQL della colonna è xml, viene generato un errore.If the SQL type of the column is xml, an error is returned.

Nome colonnaColumn Name ComportamentoBehavior
text()text() Per una colonna con nome text(), il valore stringa contenuto nella colonna viene aggiunto come nodo di testo.For a column with the name of text(), the string value in that column is added as a text node.
comment()comment() Per una colonna con nome comment(), il valore stringa contenuto nella colonna viene aggiunto come commento XML.For a column with the name of comment(), the string value in that column is added as an XML comment.
node()node() Per una colonna con nome node(), il risultato è lo stesso di quando il nome della colonna è un carattere jolly ().For a column with the name of node(), the result is the same as it is when the column name is a wildcard character ().
processing-instruction(name)processing-instruction(name) Per una colonna il cui nome corrisponde a quello di un'istruzione di elaborazione, il valore stringa contenuto nella colonna viene aggiunto come valore PI per il nome di destinazione dell'istruzione di elaborazione.For a column with the name of a processing instruction, the string value in that column is added as the PI value for the processing instruction target name.

Nella query seguente viene illustrato l'utilizzo dei test di nodo come nomi di colonna.The following query shows the use of the node tests as column names. I nodi di testo e i commenti vengono aggiunti nel codice XML risultante.It adds text nodes and comments in the resulting XML.

USE AdventureWorks2012;  
GO  
SELECT E.BusinessEntityID "@EmpID",   
        'Example of using node tests such as text(), comment(), processing-instruction()'                as "comment()",  
        'Some PI'                   as "processing-instruction(PI)",  
        'Employee name and address data' as "text()",  
        'middle name is optional'        as "EmpName/text()",  
        FirstName                        as "EmpName/First",   
        MiddleName                       as "EmpName/Middle",   
        LastName                         as "EmpName/Last",  
        AddressLine1                     as "Address/AddrLine1",  
        AddressLine2                     as "Address/AddrLIne2",  
        City                             as "Address/City"  
FROM   HumanResources.Employee AS E  
INNER JOIN Person.Person AS P   
    ON P.BusinessEntityID = E.BusinessEntityID  
INNER JOIN Person.BusinessEntityAddress AS BAE  
    ON BAE.BusinessEntityID = E.BusinessEntityID  
INNER JOIN Person.Address AS A  
    ON BAE.AddressID = A.AddressID  
WHERE  E.BusinessEntityID=1  
FOR XML PATH;  

Risultato:This is the result:

<row EmpID="1">

<!--Example of using node tests such as text(), comment(), processing-instruction() -->

<?PI Some PI?>

Employee name and address data

<EmpName>middle name is optional

<First>Ken</First>

<Last>Sánchez</Last>

</EmpName>

<Address>

<AddrLine1>4350 Minute Dr.</AddrLine1>

<City>Minneapolis</City>

</Address>

</row>

Vedere ancheSee Also

Utilizzare la modalità PATH con FOR XMLUse PATH Mode with FOR XML