2011-11-21 85 views
0

我喜欢一些关于如何将字符串变量作为xml名称的一部分传递的指导。 我m根据用户表单选择运行mysql查询。然后我为结果创建一个xml。我想传递一个变量作为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”我想要显示,可以说在直径列名。

+0

Emm ...你可以使用'$ d'变量...或者我不明白什么? '$ xml_string = $ doc-> save($ d);' –

+0

'$ name_of_file ='somefile.xml'; $ doc->保存($ name_of_file)'? –

回答

0

里面你的循环,你遍历结果:

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

您可以通过访问diam列的值:

$diam = $row['diam']; 

我现在注意到你可能会问:

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

为什么不动态创建输出文件名?事情是这样的..

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

我无法在一行中添加“.xml”扩展名,只是在将字符串传递到文件名后。上面的行完成了这项工作。感谢您的帮助 – Alx

+0

这个值得注意的是-1? – Kevin

+0

哦该死的,我可能昨天晚上missclicked它。我仍然没有用这个网站的工作原理。需要15个代表投票up.I一旦我再次得到2更多rep.Apologies,我会解决这个问题,并感谢您的答案! – Alx

0

如果你想动态创建一个文件名,那么你可以使用$d变量(它对应于你的diam列)。

$fileName = $d . '.xml'; 
$xml_string = $doc->save($fileName); 
相关问题