共用方式為


節點上的函數 - local-name

適用於:SQL Server

傳回 $arg 名稱的本端部分,作為零 xs:string 長度字串,或具有 的 xs:NCName詞彙形式。 如果未提供引數,則預設值為內容節點。

語法

fn:local-name() as xs:string
fn:local-name($arg as node()?) as xs:string

引數

$arg

擷取其本端名稱部分的節點名稱。

備註

  • 在 SQL Server 中, fn:local-name() 沒有引數只能在內容相依述詞的內容中使用。 具體來說,它只能用在括弧內([ ])。

  • 如果提供 自變數且 為空序列,則函式會傳回長度為零的字串。

  • 如果目標節點沒有名稱,因為它是文件節點、註解或文字節點,則函式會傳回零長度的字串。

範例

本文提供針對儲存在 AdventureWorks 資料庫中各種 xml 類型資料行中的 XML 執行個體的 XQuery 範例。

A. 擷取特定節點的本機名稱

下列查詢是針對不具類型的 XML 實例所指定。 查詢表達式 會 local-name(/ROOT[1])擷取指定節點的本機名稱部分。

DECLARE @x AS XML;

SET @x = '<ROOT><a>111</a></ROOT>';

SELECT @x.query('local-name(/ROOT[1])');
-- result = ROOT

下列查詢是針對 ProductModel 數據表的 Instructions 數據行,即具類型的 xml 數據行。 表示式 local-name(/AWMI:root[1]/AWMI:Location[1])會傳回指定節點的本機名稱 Location

SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
     local-name(/AWMI:root[1]/AWMI:Location[1])') AS Result
FROM Production.ProductModel
WHERE ProductModelID = 7;
-- result = Location

B. 在述詞中使用不帶引數的本地名稱

下列查詢是針對 ProductModel 資料表的 Instructions 數據行、具類型的 xml 數據行來指定。 此運算式會傳回元素的所有<root>子元素,其 QName 的本端名稱部分為 。"Location" 函數在 local-name() 謂詞中指定,並且沒有引數 上下文節點由函數使用。

SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
  /AWMI:root//*[local-name() = "Location"]') AS Result
FROM Production.ProductModel
WHERE ProductModelID = 7;

查詢會傳回元素的所有<root>元素子<Location>系。