формирование атрибута

chameleon

Новичок
формирование атрибута

пытаюсь сформировать аттрибут тэга <a> в xslt шаблоне:
Код:
<a>	
  <xsl:attribute name="href">		
    <xsl:text>phonebook.php?phone=</xsl:text>
    <xsl:value-of select="name"/>
  </xsl:attribute>	
  <xsl:value-of select="name"/>
</a>
сам элемент name содержит русский текст,
значение атрибута кодируется в %XX, а сама ссылка выглядит нормально...что-то типа:
<a href="phonebook.php?phone=%D0%95%D1%81%D1%82%D1%80%D0%B8%D0%BD">Естрин</a>

рисую через ж... :)
Код:
<xsl:text disable-output-escaping="yes">&lt;a href=&apos;phonebook.php?name=</xsl:text>
<xsl:value-of select="name"/>
<xsl:text disable-output-escaping="yes">&apos;&gt;</xsl:text>
<xsl:value-of select="name"/>
<xsl:text disable-output-escaping="yes">&lt;/a&gt;</xsl:text>
все рабоает :(..
<a href='phonebook.php?name=Естрин'>Естрин</a>

не дайте помереть дураком :(...поможите люди добрые где грабли?
 

sokov

Guest
По поводу граблей не знаю, но рекомендовал бы с самого начала делать всё в Unicode - тогда таких проблем не возникнет.
 

Sababa

Guest
а чем тебе не нравится
<a href="phonebook.php?phone=%D0%95%D1%81%D1%82%D1%80%D0%B8%D0%BD">Естрин</a>

все non ASCII смиволы представленны через escape полседовательности
 

slach

Новичок
тем, что их СНАЧАЛА надо сделать urlencode ;)
а потом уже совать их в исходный XML документ
 

chameleon

Новичок
хотелось бы разобраться почему при прочих равных условиях (имхо), содержание элемента представляется по-разному?
что xsl:attribute за зверь такой? ;(..
 

Sababa

Guest
это происходит на другом уровне

когда ты делаешь result_dump() и у тебя в xsl прописан <xsl:eek:utput method="html"/>, то dom пытается построить корректный html по всем правилам, а это значит, что все non US-ASCII смиволы внутри href, src и т.д. должны быть представленны через escape последовательности, что dom с успехом и делает, поэтому xsl:attribute здесь не при чем
 

chameleon

Новичок
ну точна!...поставил для проверки <xsl:eek:utput method="xml"/> и все путем! :)..
спасибо!..
 
Сверху