Я хотел бы создать фид данных, который имеет основные элементы RSS 2.0 и выглядит так:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Clot3333333tory</title>
<description>Clot333333333333333holesale pricing and bulk ordering to consumers and businesses.</description>
<item>
<title>
<description>
<link>
Я использую таблицу стилей XSLT в документе XML для заполнения этого шаблона, проблема, с которой я столкнулся, - это использование тега <Caption>
в документе XML для тега <description>
в готовом проекте. Это поле «Заголовок» отформатировано в html, я хотел бы перетащить данные «Заголовок» в «описание», но просто отобразить его в виде текста и отбросить все теги HTML. Как это будет выглядеть в таблице стилей для этого?
EDIT:
входящий XML-файл выглядит так (включая только один элемент item):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE StoreExport SYSTEM "http://store.yahoo.com/doc/dtd/StoreExport.dtd">
<StoreExport>
<Settings>
<Published timestamp="1297187196"/>
<Locale code="C" name="English" encoding="iso-8859-1"/>
<StoreName>Clo3333333nd.com</StoreName>
<Currency>USD</Currency>
<ShipMethods>
<ShipMethod>Ground</ShipMethod>
<ShipMethod>Two Day Delivery</ShipMethod>
<ShipMethod>One Day Delivery</ShipMethod>
<ShipMethod>3 Day</ShipMethod>
</ShipMethods>
<PayMethods>
<PayMethod>American Express</PayMethod>
<PayMethod>Discover</PayMethod>
<PayMethod>MasterCard</PayMethod>
<PayMethod>Visa</PayMethod>
<PayMethod>Diner's Club</PayMethod>
</PayMethods>
</Settings>
<Products>
<Product Id="agfasu">
<Code>3616a</Code>
<Description>Ageless Fashion Suit</Description>
<Url>http://www.clo333333nd.com/agfasu.html</Url>
<Thumb><img border=0 width=50 height=70 src=http://ep.yimg.33333333333st-27703333333618_2144_317652924></Thumb>
<Picture><img border=0 width=600 height=845 src=http://ep.yimg.com/33333333-2770333333333317019111></Picture>
<Orderable>YES</Orderable>
<Taxable>YES</Taxable>
<Pricing>
<BasePrice>178.00</BasePrice>
<LocalizedBasePrice>178.00</LocalizedBasePrice>
<OrigPrice>299.99</OrigPrice>
<LocalizedOrigPrice>299.99</LocalizedOrigPrice>
<SalePrice>178.00</SalePrice>
<LocalizedSalePrice>178.00</LocalizedSalePrice>
</Pricing>
<Path>
<ProductRef Id="wochsu" Url="http://www.cl333333333333hsu.html">Womens Church Suits</ProductRef>
<ProductRef Id="2454" Url="http://www.clo333333333nd.com/2454.html">Aussie Austine Spring/Summer 2011</ProductRef>
</Path>
<Availability>Usually ships the next business day.</Availability>
<Caption><head> <meta content="en-us" http-equiv="Content-Language"> <style type="text/css"> .style3 { font-family: arial, helvetica; font-size: medium; font-weight: bold; } .style4 { font-size: small; } </style> </head> <p><strong>Wholesale Women&#39;s Church Suits&nbsp; - 3 Piece Suit - Jacket/Vest/Long Skirt</strong></p> <p><strong>Aussie Austine Spring/Summer 2011</strong></p> <p class="style4"><strong>Wholesale Clothing Distributors - Church Attire, Gospel Fashion, Mother of Bride Style at a Wholesale Price. For all your fancy, classic, elegant parties and or occasions. Our suits come in a variety of styles to accommodate your fashion taste. Suits for all women, moms, grandma&#39;s, daughters and aunts. That classic look that will bring attention. From stylish skirts, pants, jackets and vests. Two piece suits, available hats and purses. Brand Name Wholesale Ladies Apparel. </strong></p> <p>3<strong> Piece Suit - Jacket/Vest/Long Skirt</strong></p> <p><strong>Sizes&nbsp; 8 10 12 14 16 18 20</strong></p> <p><strong>Color&nbsp; Khaki Red</strong></p> <p>Available Accessories: Hat and Purse&nbsp; </p> <font face="arial, helvetica" size="4"> <p align="left">Orders of 12 and 24 Items are Mixed Colors and Sizes. For more information Please call Us @ 323333300</p> <p align="left">Please feel free to call if you would like wholesale pricing for larger orders&nbsp;</font></p> <font face="arial, helvetica" size="2"> <p align="left"><b><font size="4">Please call or E-mail <a href="mailto:Sal333333sland.com">Sales@cloth333333333and.com</a> If you are interested in purchasing larger quantities</font></b></p> </font> <p align="left" class="style3">&nbsp;</p> <p align="left">&nbsp;</p> <p align="left">&nbsp;</p> <p align="left">`</p></Caption>
вы можете увидеть тег 'Caption', о котором я упоминал внизу.
я никогда раньше не использовал xslt, поэтому в настоящее время у меня есть только скелет, который я могу получить только в основном, чтобы повторить все данные, даже если я использую шаблоны 'match', весь текст включается в конечный продукт независимо. я знаю, что просто неправильно формулирую шаблон, но я могу найти эту концепцию объясненной где угодно. формулировка, которую я использую для матча:
<xsl:template match="Description"
<title>
<apply-template/>
</title>
</xsl:template>
с целью превращения тега 'Description' в поле 'title' в конечном документе xml rss2.0
EDIT:
Хорошо, я использую XSLTPalette, и на экране есть 3 режима вывода: «сырые», «красивые», «визуализированные» результаты. когда я использую таблицу стилей, которая у меня есть, чтобы убрать элементы из узлов «Заголовок», они отображаются так, как я хочу в «сырых» результатах, это просто текст без всех экранированных символов. также отображается нормально в отображаемом результате, но мои данные все еще не структурированы в отображаемом результате. он вообще не отображается в «симпатичном» окне вывода, но «сырой» становится ближе к тому, что мне нужно, я думаю. Вот неполная таблица стилей для примера:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="//Product/Caption">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="contains($text, '<')">
<xsl:value-of select="substring-before($text, '<')"/>
<xsl:call-template name="strip-tags">
<xsl:with-param name="text" select="substring-after($text, '>')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
две вещи: это эффективно удаляет правильный раздел узлов, но как бы я также инкапсулировал вывод этого раздела в тег под названием «описание» для окончательного документа, и что я не делаю, чтобы иметь только те вещи, которые я хочу отображаться в продукте, например, не включать ничего, кроме того, что я хочу указать.