如何将字符串变量作为xml名称的一部分传递

时间:2011-11-21 21:28:12

标签: php mysql xml

我想了解如何将字符串变量作为xml名称的一部分传递的一些指导。 我根据用户表单选择运行一个mysql查询。然后我为结果创建一个xml。我想传递一个变量作为xml的名称。这可能吗?

这就是我的工作代码:

$query = "SELECT * FROM $table WHERE diam = '$d' AND nom = '$n' AND dim = '$di' AND type = '$t'";
$query_result=mysql_query($query);
$num_rows = mysql_num_rows($query_result);
if($num_rows == 0) {

    echo "bummer!";

} else {

    #Creates a new DOMDocument
    $doc = new DOMDocument("1.0", "utf-8");

    #formats correctly the xml document 
    $doc->formatOutput = true;

    #Create Parent Node
    $parent_node = $doc->createElement('marker');
    $parent_node = $doc->appendChild($parent_node);

    #Row manip
    while($row = mysql_fetch_assoc($query_result)) {
        #adds node for each row
        $row_node = $doc->createElement($table);
        #appends the new node to the root
        $occ = $parent_node->appendChild($row_node);

        #add a child node for each field
        foreach($row as $fieldname => $fieldvalue) {
            $child = $doc->createElement($fieldname);
            $child = $occ->appendChild($child);

            $value = $doc->createTextNode($fieldvalue);
            $value = $child->appendChild($value);
        }
    }

    #saves generated domDocument into a file.
    #If echo'ed outputs filezise in bytes
    $xml_string = $doc->save('xmlOutput.xml');
}

而不是我要显示的硬编码“xmlOutput”,让我们说diam列名。

3 个答案:

答案 0 :(得分:0)

为什么不动态创建输出文件名?像这样......

$ouputFile = $row['diam'] . '.xml';
$xml_string = $doc->save($outputFile);

答案 1 :(得分:0)

在循环中循环结果:

#Row manip
while($row = mysql_fetch_assoc($query_result))

您可以通过执行以下操作访问diam列的值:

$diam = $row['diam'];

我现在注意到你可能要求:

$filename = $d . '.xml';
$xml_string = $doc->save($filename);

答案 2 :(得分:0)

如果要动态创建文件名,则可以使用$d变量(与diam列对应)。

$fileName = $d . '.xml';
$xml_string = $doc->save($fileName);