Witam.
Potrzebuję opisać dokument XML za pomocą XSLT jednak napotykam na problem przy xpath z nazewnictwem tagów w XML.
Przykład xml:
<?xml version="1.0" encoding="utf-8"?>
<aws:weather xmlns:aws="http://www.aws.com/aws">
<aws:api version="2.0" />
<aws:locations>
<aws:location cityname="Kielce" statename="" countryname="Poland" zipcode="" citycode="72922" citytype="1" />
<aws:location cityname="Kalach" statename="" countryname="Russia" zipcode="" citycode="74150" citytype="1" />
<aws:location cityname="Kalas" statename="" countryname="India" zipcode="" citycode="64854" citytype="1" />
</aws:locations>
</aws:weather>
Mój xslt:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<ul id="weatherList">
<xsl:apply-templates select="weather/locations/location" />
</ul>
</xsl:template>
<xsl:template match="weather/locations/location">
<li class="even">
<xsl:value-of select="./@cityname" /> <span class="small">(<xsl:value-of select="./@countryname" />)</span>
</li>
</xsl:template>
</xsl:stylesheet>
Wszystko działa poprawnie, jeżeli w nazwach tagów w xml usunie się prefiks "aws:" jednak tego zrobić nie mogę...
Próbuję pobrać plik do zmiennej i w PHP usunąć "aws:" za pomocą str_replace() ale wtedy otrzymuję błąd przy załadowaniu XML'a
<?php
Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Start tag expected, '<' not found in Entity, line: 1 in .... on line 823
?>
Jeżeli macie jakieś pomysły jak napisać popranego xslt z zachowaniem prefiksu "aws" to czekam na propozycje (IMG:
http://forum.php.pl/style_emoticons/default/smile.gif)
Pozdrawiam.