php xml解析器 - >来自SELECT的表或选项

时间:2014-07-27 20:23:37

标签: php xml

我正在寻找一种方法来解析这样的事情:

<xml>
    <data>
        <name>zyx</name>
        <value>xyz<value>
    </data>
    <data>
        <name>cba</name>
        <value>abc</value>
    </data>
</xml>

把它变成这个:

<SELECT>
      <OPTION VALUE="xyz">zyx</OPTION>
      <OPTION VALUE="abc">cba</OPTION>
</SELECT>

仅使用php,如果客户端要查看我的源代码,他们只会看到选择选项而不是js解析器(看起来很混乱,并显示正在解析的xml文件的位置。有没有办法用php?和How?使用变量输入?

function select($tid, $t, $xml, $name, $iid, $elname, $vname, $nname)
{

    $file = file_get_contents("modules/xml/$xml.xml");
    $select = new SimpleXMLElement($file);

    return "
        <TR>
      <TD ID=\"$tid\">
         &nbsp;$t&nbsp;
        </TD>
        <TD ID=\"$tid\">
        <SELECT NAME=\"$name\">";
   foreach($select->$elname as $options)
   {
   return"
   <OPTION VALUE=\"$OPTIONs->value\">
      $OPTIONs->name
   </OPTION>\n";
   }
        return
}

1 个答案:

答案 0 :(得分:1)

http://php.net/manual/en/simplexml.examples-basic.php

使用SimpleXMLElement()的示例
$xml = "
 <xml>
  <data>
   <name>zyx</name>
   <value>xyz</value>
  </data>
  <data>
   <name>cba</name>
   <value>abc</value>
  </data>
 </xml>";

$select = new SimpleXMLElement($xml);

echo "<select>";
foreach($select->data as $options){
    echo "<option value='$options->value'>$options->name</option>";
}
echo "</select>";

返回

<select>
 <option value='xyz'>zyx</option>
 <option value='abc'>cba</option>
</select>

修改

如果您要加载外部.xml文件,则需要使用simplexml_load_file() - http://php.net/manual/en/function.simplexml-load-file.php

$select = simplexml_load_file('xmlFile.xml');

echo "<select>";
foreach($select->data as $options){
    echo "<option value='$options->value'>$options->name</option>";
}
echo "</select>";