PHP/XML/XSL的问题
我正试图找出我可以做什么来创建一个代码,在XML文件中添加数据,而不是不断重写XML文件 我需要能够保存所有的表格条目,从现在起,每次提交表格。它创建一个新的XML文件并删除旧的XML文件 这可能真的很容易修复,或者我真的很笨,但我已经研究了DOM语法,没有看到可以通过修改什么来改变结果PHP/XML/XSL的问题,php,xml,xslt,Php,Xml,Xslt,我正试图找出我可以做什么来创建一个代码,在XML文件中添加数据,而不是不断重写XML文件 我需要能够保存所有的表格条目,从现在起,每次提交表格。它创建一个新的XML文件并删除旧的XML文件 这可能真的很容易修复,或者我真的很笨,但我已经研究了DOM语法,没有看到可以通过修改什么来改变结果 // define configuration file name and path $configFile = 'abook.xml'; // if form not yet submitted // di
// 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.';
}
//生成新的XML文档
$doc=新的DOMDocument();
//创建并附加根元素
$root=$doc->createElement('addressbook');
$configuration=$doc->appendChild($root);
//在下创建并附着图元
$address=$doc->createElement('address');
$configuration->appendChild($address);
//将每个配置值写入文件
foreach($config as$key=>$value){
如果(修剪($value)!=''){
$elem=$doc->createElement($key);
$text=$doc->createTextNode($value);
$address->appendChild($elem);
$elem->appendChild($text);
}
}
//格式化XML输出
//保存XML文件
$doc->formatOutput=true;
$doc->save($configFile)或die('错误:无法写入配置文件');
echo‘感谢您填写申请表’;
}
我真的是新的在这方面,所以我很抱歉,如果我的代码是相当混乱
第二部分我处理的是一个XSL文件,我已经链接到我的XML文件,但无论我使用什么语法进行转换,都无法将其保存在表中
同样,我不知道这是否是由于我设置PHP编写XML的方式造成的。看起来您有两个不同的问题:(1)将XML记录附加到现有XML文档中;(2)通过XSLT转换XML。将XSL部分分成一个新问题,并显示您正在使用的XSLT。