分享方式:


節點的相關函式 - 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)