Стилизация XML-файла с помощью таблицы стилей XSLT - PullRequest
0 голосов
/ 03 марта 2012

Может кто-нибудь сказать мне, какой должна быть таблица стилей xslt для стилизации этого XML-файла:

<?xml version="1.0" encoding="UTF-8"?>
<BrowseNodeLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
  <OperationRequest>
    <HTTPHeaders>
      <Header Name="UserAgent" Value="Jakarta Commons-HttpClient/3.0.1">
      </Header>
    </HTTPHeaders>
    <RequestId>09ZDHZ7PV71DC7Z168WA</RequestId>
    <Arguments>
      <Argument Name="AssociateTag" Value="xxxxx"></Argument>
      <Argument Name="Service" Value="AWSECommerceService"></Argument>
      <Argument Name="SubscriptionId" Value="yyyyy"></Argument>
      <Argument Name="Signature" Value="zzzzz"></Argument>
      <Argument Name="ResponseGroup" Value="NewReleases"></Argument>
      <Argument Name="Operation" Value="BrowseNodeLookup"></Argument>
      <Argument Name="BrowseNodeId" Value="676410011"></Argument>
      <Argument Name="Timestamp" Value="2012-03-03T16:37:17Z"></Argument>
    </Arguments>
    <RequestProcessingTime>0.0326540470123291</RequestProcessingTime>
  </OperationRequest>
  <BrowseNodes>
    <Request>
      <IsValid>True</IsValid>
      <BrowseNodeLookupRequest>
        <BrowseNodeId>676410011</BrowseNodeId>
        <ResponseGroup>NewReleases</ResponseGroup>
      </BrowseNodeLookupRequest>
    </Request>
    <BrowseNode>
      <BrowseNodeId>676410011</BrowseNodeId>
      <Name>Games</Name>
      <NewReleases>
        <NewRelease>
          <ASIN>B0073POVPK</ASIN>
          <Title>Pokepark 2: Wonders Beyond (Wii)</Title>
        </NewRelease>
        <NewRelease>
          <ASIN>B0076X58XI</ASIN>
          <Title>Back to the Future: The Game (Wii)</Title>
        </NewRelease>
      </NewReleases>
      <TopItemSet>
        <Type>NewReleases</Type>
        <TopItem>
          <ASIN>B0073POVPK</ASIN>
          <Title>Pokepark 2: Wonders Beyond (Wii)</Title>
          <DetailPageURL>http://www.amazon.co.uk/Pokepark-2-Wonders-Beyond-Wii-Nintendo/dp/B0073POVPK%3FSubscriptionId%3D116AQMJ35GESH5XBF1G2%26tag%3Dwii07-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0073POVPK</DetailPageURL>
          <ProductGroup>Video Games</ProductGroup>
        </TopItem>
        <TopItem>
          <ASIN>B0076X58XI</ASIN>
          <Title>Back to the Future: The Game (Wii)</Title>
          <DetailPageURL>http://www.amazon.co.uk/Back-Future-Game-Wii-Nintendo/dp/B0076X58XI%3FSubscriptionId%3D116AQMJ35GESH5XBF1G2%26tag%3Dwii07-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0076X58XI</DetailPageURL>
          <ProductGroup>Video Games</ProductGroup>
        </TopItem>
      </TopItemSet>
    </BrowseNode>
  </BrowseNodes>
</BrowseNodeLookupResponse>

Полный файл находится здесь - http://www.wiiuser.co.uk/XML_Games_NR1_original.xml

, чтобы он выгляделвот так:

<?xml version="1.0" encoding="UTF-8"?>
<xml xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
    <root>
        <NewRelease>
            <asin>B0073POVPK</asin>
            <Title>Pokepark 2: Wonders Beyond (Wii)</Title>
        </NewRelease>
        <NewRelease>
            <asin>B0076X58XI</asin>
            <Title>Back to the Future: The Game (Wii)</Title>
        </NewRelease>
    </root>
</xml>

Полный выходной файл находится здесь - http://www.wiiuser.co.uk/XML_Games_NR1_styled.xml

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

Пожалуйста, не отмечайте меня за этот вопрос.

Спасибо взаранее за любую предложенную помощь.

Это файл xslt, который я использовал до того, как Amazon изменил схему, но теперь он не работает.Возможно, раньше была проблема с этим, но изменение схемы повлияло на это.

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  <xsl:template match="/">
    <xml>
      <root>
        <xsl:apply-templates select="aws:BrowseNodeLookupResponse/BrowseNodes/BrowseNode/NewReleases/NewRelease" />
      </root>
    </xml>
  </xsl:template>

  <xsl:template match="aws:NewRelease">
    <NewRelease>
    <asin>
      <xsl:value-of select="aws:ASIN" />
    </asin>
    <Title>
      <xsl:value-of select="aws:Title" />
    </Title>
    </NewRelease>
  </xsl:template>  
</xsl:stylesheet>

1 Ответ

1 голос
/ 03 марта 2012

Вы должны указать пространство имен на всех этапах вашего xpath в атрибуте select из apply-templates:

<xsl:apply-templates select="aws:BrowseNodeLookupResponse/aws:BrowseNodes/aws:BrowseNode/aws:NewReleases/aws:NewRelease"/>
...