PHP / XML / XSL的问题

时间:2012-12-05 07:30:42

标签: php xml xslt

我想弄清楚我可以做些什么来创建一个代码,在我的XML文件中附加数据而不是连续重写XML文件。

我需要能够保存所有表单条目,并且每次提交表单时都是如此。它会创建一个新的XML文件并删除旧文件。

这可能很容易修复,或者我只是非常愚蠢,但我已经看过DOM语法,并且看不到我可以改变什么来改变结果。

// define configuration file name and path
$configFile = 'abook.xml';

// if form not yet submitted
// display form
if (!isset($_POST['submit'])) {

  // set up array with default parameters
  $data = array();
  $data['name'] = null;
  $data['email'] = null;
  $data['caddress'] = null;
  $data['city'] = null;
  $data['state'] = null;
  $data['zipcode'] = null;
  $data['phone'] = null;
  $data['pug'] = null;
  $data['comment'] = null;
  $data['subscribe'] = null;

  // read current configuration values
  // use them to pre-fill the form
  if (file_exists($configFile)) {
    $doc = new DOMDocument();
    $doc->preserveWhiteSpace = false;
    $doc->load($configFile);
    $address = $doc->getElementsByTagName('address');
    foreach ($address->item(0)->childNodes as $node) {
      $data[$node->nodeName] = $node->nodeValue; 

    }        
  }

中间是PHP表单和验证代码,最后我再次使用XML标记:

  // generate new XML document
  $doc = new DOMDocument();

  // create and attach root element <configuration> 
  $root = $doc->createElement('addressbook');
  $configuration = $doc->appendChild($root);

  // create and attach <oven> element under <configuration>
  $address = $doc->createElement('address');
  $configuration->appendChild($address);

  // write each configuration value to the file
  foreach ($config as $key => $value) {
    if (trim($value) != '') {
      $elem = $doc->createElement($key);
      $text = $doc->createTextNode($value);
      $address->appendChild($elem);
      $elem->appendChild($text);          
    }
  }

  // format XML output



  // save XML file
  $doc->formatOutput = true;
  $doc->save($configFile) or die('ERROR: Cannot write configuration file');      
  echo 'Thank you for filling out an application.';
}  

我真的很新,所以如果我的代码非常混乱,我很抱歉。

第二部分我正在处理一个XSL文件,我已经链接到我的XML文件,但无论我用什么语法转换,没有什么可以保存在表中。

同样,我不知道这是否是由我设置PHP编写XML的方式引起的。

0 个答案:

没有答案