Как бы сделать проще ... Xpath !

stable

Guest
Как бы сделать проще ... Xpath !

Есть структура

<struct>
<member>
<name>user_id<name>
<value><int>2</int></value>
</member>
<member>
<name>user_gid<name>
<value><int>55</int></value>
</member>
</struct>

Как бы проще сформировать ассоциативный массив вида

array("user-id"=>"2", "user-gid"=>"55" )
 

dvp

Новичок
Re: Как бы сделать проще ... Xpath !

прогнать через вот это:
Код:
<xsl:template match="struct">
  <xsl:text>$array = array(</xsl:text>
  <xsl:for-each select="member">
    <xsl:text>"</xsl:text>
    <xsl:value-of select="name"/>
    <xsl:text>" => "</xsl:text>
    <xsl:value-of select="value/int"/>
    <xsl:text>"</xsl:text>
    <xsl:if test="position() != last()">
      <xsl:text>, </xsl:text>
    </xsl:if>
  </xsl:for-each>
  <xsl:text>);</xsl:text>
</xsl:template>
а потом eval:)
 

slach

Новичок
dvp ??? упал чтоли ?? =)
ну давайте теперь будем XSLT трансформациями для получения php кода заниматься... оригинально конечно спору нет, но какой оверхед... это просто умотаца...

автору вопроса
какой php вас интересует ??
php4 или php5 ?
 

stable

Guest
$attr = $data->xpath("//params/param[2]/value/struct/member");

foreach($attr as $param_name){
$zz["$param_name->name"] = $param_name->value->int; }
 

stable

Guest
Спасибо, но данный вопрос рассматривался не только в рамках xml/rpc
 
Сверху