将数据插入xml中的现有节点

时间:2012-05-07 04:39:04

标签: php html sql xml forms

我是XML和PHP的新手,但我有这个项目,这是需要做的。

我有一个像这样的html表单:

<table>   
  <tr>
    <td align="right" width="120px">First name:</td>
    <td><input id="txtfname" style="width: 200px" type="text" /></td>
  </tr>
  <tr>
    <td align="right">Last name:</td>
    <td><input id="txtlname" style="width: 200px" type="text" /></td>
  </tr>
  <tr>
    <td align="right">Business name:</td>
    <td><input id="txtbisname" style="width: 200px" type="text" /></td>
  </tr>
</table>

我有一个像这样的xml文件:

<data>
    <first_name></first_name>
    <last_name></last_name>
    <business_name></business_name>
</data>

是否可以使用php文件将html表单中的数据写入xml文件? 如果是这样,有人可以告诉我如何。我真的需要解决这个问题。

在此之后我还需要将xml文件传输到sql数据库。

我很满意。

谢谢..

2 个答案:

答案 0 :(得分:1)

试试这个。它假设您在表单中包含HTML表并将其发布到服务器。

<?php
$str = '<?xml version="1.0" encoding="utf-8"?><data></data>';
$xml = simplexml_load_string( $str );

$fname = trim( $_POST[ 'txtfname' ] );
$lname = trim( $_POST[ 'txtlname' ] );
$bname = trim( $_POST[ 'txtbisname' ] );

$fname = htmlentities( $fname, ENT_COMPAT, 'UTF-8', false );
$lname = htmlentities( $lname, ENT_COMPAT, 'UTF-8', false );
$bname = htmlentities( $bname, ENT_COMPAT, 'UTF-8', false );

$xml->addChild( 'first_name', $fname );
$xml->addChild( 'last_name', $lname );
$xml->addChild( 'business_name', $bname );

$doc = new DOMDocument( '1.0' );
$doc->formatOutput = true;
$doc->preserveWhiteSpace = true;
$doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
$doc->save( 'data.xml' );
?>

现在,data.xml是xml文件。希望这会有所帮助。

答案 1 :(得分:0)

我认为XSLT对您有用。看看这个:http://www.w3schools.com/xsl/