#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">