Xpoint
   [напомнить пароль]

xml+php

Метки: [без меток]
[удл]
2011-03-04 23:41:56 [обр] alexander1111[досье]

Добрый вечер, форумчане)
Есть такой вопрос. В php новичок. многого незнаю - надеюсь на вашу поддержку)

Вообщем, делаю лаб работу по php. Написал xml документ. к нему xsl файл. Все это дело прочитал в php :
<form method='POST'>
<input type='submit' value='Изменить'>
<input type='text' size='7'>
<?
$XML = new DOMDocument();
$XML->load( 'price.xml' );
 
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL->load( 'style.xsl');

$xslt->importStylesheet( $XSL );
print $xslt->transformToXML( $XML )
?>
Теперь незнаю как сделать чтоб при вводе в форму цвета (red, green, blue, etc ) в xsl (<td bgcolor="Значение цвета с формы"><xsl:value-of select="Phones/Prod/Name1"/></td>) вставлялось значение этого цвета.

спустя 3 часа 30 минут [обр] Jared(3/26)[досье]

Используйте CSS.

В XSLT атрибуты к генерируемым узлам прикручиваются примерно так:

<td>
   <xsl:attribute name='bgcolor'>blue</xsl:attribute>
</td>

Некоторые элементы я предпочитаю генерировать опять же с помощью XSLT:

<xsl:element name='td'>
   <xsl:attribute name='class'>someClass</xsl:attribute>
</xsl:element>
спустя 7 часов [обр] alexander1111[досье]
CSS не проходили к сожалению))) нужно как нибудь другим способом осуществить такое)
спустя 12 часов [обр] Jared(3/26)[досье]
<xsl:element name='td'>
   <xsl:attribute name='bgcolor'>blue</xsl:attribute>
</xsl:element>
спустя 3 часа 56 минут [обр] alexander1111[досье]
а как сделать чтоб значение цвета бралось POSTом из формы?
спустя 6 часов [обр] Jared(3/26)[досье]

XSLT:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:param name='color'/>

<!-- [...] -->

   <xsl:template match='somenode'>
      <td bgcolor='{$color}'></td>
   </xsl:template>

<!-- [...] -->

</xsl:stylesheet>

PHP:

//......

$xslt->importStylesheet( $XSL ); 
$xslt->setParameter('', 'color', $_POST['color']);
print $xslt->transformToXML( $XML )

Если все делать правильнои корректно, должно получиться что-то в этом духе.
Если быстро и на коленке - можно после преобразования str_replace или preg_replace (если нужно) использовать.

спустя 6 часов [обр] alexander1111[досье]
Jared, СПАСИБО ВАМ ОГРОМНОЕ!!!! Я голову дней 5 сидел ломал и не мог сделать!!! Ваш код с 1го раза сработал как надо!))
спустя 2 минуты [обр] alexander1111[досье]
я вчера тоже так делал, как вы представили сегодня.. Но не получилось)
спустя 28 минут [обр] Jared(3/26)[досье]
Не за что. Не забывайте читать мануалы по вещам, которые используете.
Спецификация XSLT: http://www.w3.org/TR/xslt
Мануал по XSLTProcessor: http://php.net/manual/en/class.xsltprocessor.php
Powered by POEM™ Engine Copyright © 2002-2005