Согласно http://www.w3.org/TR/2006/REC-xml-names-20060816/#scoping-defaulting
"Объявления пространства имен по умолчанию не применяются непосредственно к именам атрибутов; интерпретация нефиксированных атрибутов определяется элементом, на котором они появляются."
Это означает, что ваши атрибуты не находятся в пространстве имен. Просто используйте "@term".
Просто, чтобы прояснить ситуацию, нет необходимости использовать local-name () для решения этой проблемы.
Обычный способ справиться с этим - объявить префикс для пространства имен atom в вашем XSLT, а затем использовать его в запросах xpath.
У вас уже есть это объявление в вашем элементе таблицы стилей (xmlns: atom = "http://www.w3.org/2005/Atom"),, поэтому все, что остается, - это использовать его.
Как я уже объяснил, на атрибут не влияет пространство имен по умолчанию, поэтому ваш код будет выглядеть следующим образом (при условии, что вы добавите "xmlns: xhtml = 'http://www.w3.org/1999/xhtml'"):
<xsl:for-each select="/atom:feed/atom:entry">
<xsl:variable name="CurrentVenueKey" select="atom:id" />
<xsl:variable name="CurrentVenueName" select="atom:title" />
<xsl:variable name="CurrentVenueAddress1"
select="atom:content/xhtml:div/xhtml:div/xhtml:p[@class='adr']/xhtml:span[@class='street-address']" />
<xsl:variable name="CurrentVenueCity"
select="atom:content/xhtml:div/xhtml:div'/xhtml:p[@class='adr']/xhtml:span[@class='locality'] />
...
<xsl:variable name="CurrentCategory" select="atom:category/@term" />
.....
local-name () может быть очень полезен, если вы действительно не знаете структуру XML-файла, который вы преобразовываете, но в этом случае, если вы получите что-то, отличное от того, что вы ожидаете, он сломается дело.