我正在寻找一种方法来解析这样的事情:
<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\">
$t
</TD>
<TD ID=\"$tid\">
<SELECT NAME=\"$name\">";
foreach($select->$elname as $options)
{
return"
<OPTION VALUE=\"$OPTIONs->value\">
$OPTIONs->name
</OPTION>\n";
}
return
}
答案 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>";