Преобразование в XSLT базового XML Google

#xml #xslt

#xml #xslt

Вопрос:

Я пытаюсь преобразовать следующий базовый XML Google:

http://feeds.omgeu.com/data/xslt/savingsdirect.xml

используя этот XSLT:

http://feeds.omgeu.com/data/xslt/savingsdirect.xslt

Я изо всех сил пытаюсь заставить это работать правильно. Я объявил пространство имен g:, но, похоже, я просто не могу добиться большего прогресса. Любая помощь приветствуется.

Спасибо

Ответ №1:

Анализируемый канал — Atom. Смотрите определение в элементе document:

 <feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
  

Но в вашем xslt отсутствует это пространство имен. Вы должны определить его в XSLT:

 <xsl:stylesheet 
   version="2.0" 
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
   xmlns:fn="http://www.w3.org/2005/xpath-functions" 
   xmlns:omg="http://feeds.omgadmin.co.uk/feeds/ns/1.0/" 
   xmlns:rss="http://feeds.omgeu.com/ns/1.0/" 
   xmlns:g="http://base.google.com/ns/1.0"
   xmlns:atom="http://www.w3.org/2005/Atom">
  

И используйте его для извлечения узлов Atom из XML.

 <xsl:template name="itemTemplate" match="atom:entry">