共用方式為


節點的相關函式 - 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 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. 在述詞中使用不含自變數的local-name

下列查詢是針對 ProductModel 資料表的 Instructions 數據行、具類型的 xml 數據行來指定。 表達式會傳回 QName 區域名稱部分為 「Location」 之專案的所有項目子 <root> 系。 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  

查詢會傳回專案的所有 <Location> 項目子 <root> 系。

另請參閱

節點上的函式
namespace-uri 函式 (XQuery)