name()和local-name()之间有什么区别?

我真的不明白XPath函数namelocal-name之间的区别。

你能举一个他们会有所不同的例子吗?

编辑

鉴于这个例子:

 <?xml version="1.0" ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head></head> </html> 

我得到了与这两个查询相同的结果: //*[local-name()="head"]//*[name()="head"] 。 这是为什么?

One Solution collect form web for “name()和local-name()之间有什么区别?”

随着XML的

 <x:html xmlns:x="http://www.w3.org/1999/xhtml"/> 

样式表

 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output indent="yes"/> <xsl:template match="*"> <local-name><xsl:value-of select="local-name()"/></local-name> <name><xsl:value-of select="name()"/></name> </xsl:template> </xsl:stylesheet> 

输出

 <local-name>html</local-name> <name>x:html</name> 

所以local-name()结果没有任何前缀, the name()结果可能包含一个前缀。

在你的示例中,默认名称空间声明不存在前缀,因此name()local-name()给出相同的结果。

  • 如何编写XPath查询以匹配两个属性?
  • 如何在xpath中使用不包含()?
  • 有没有XSLT名称的元素?
  • XSLTstringreplace
  • XPath - node()和text()之间的区别
  • 从SQL Server 2008中的XML字段中select值
  • Javascript获得一个节点的XPath
  • XPath查找没有id或class的元素
  • 如何使用XPath包含()在这里?
  • XPATH查询中的特殊字符
  • XSL if else条件