PHP在提交XSL表单数据时调用原始XML文件
|
我有一个页面,该页面使用与XSL样式表匹配的XML文件来创建表单。
XML文件是这样的:
<?xml version=\"1.0\"?>
<?xml-stylesheet href=\"XSL/BasicForm.xsl\" type=\"text/xsl\"?>
<xml>
<title></title>
<entry1></entry1>
<enrty2></entry2>
<entry3></entry3>
</xml>
它引用创建表单的BasicForm.xsl文件是这样的:
<?xml version=\"1.0\"?>
<xsl:stylesheet version=\"1.0\" xmlns=\"http://www.w3.org/1999/xhtml\"xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">
<xsl:output method=\"html\"/>
<xsl:template match=\"xml\">
<form method=\"POST\" action=\"action.php\">
<xsl:for-each select=\"child::*\">
<label>
<xsl:value-of select=\"name()\"/>:
<input name=\"{name()}\" type=\"text\" />
</label>
<br />
</xsl:for-each>
<br/>
<input type=\"submit\" value=\"Submit\" name=\"submitButton\"/>
<br/>
</form>
</xsl:template>
</xsl:stylesheet>
如您所见,提交表单后,将引用一个PHP文件进行表单处理和打印。 PHP文件如下所示:
<html>
<head></head>
<body >
<?php
$myFile = ;
$fh = fopen($myFile, \'r\');
$theData = fread($fh, filesize($myFile));
fclose($fh);
$doc = DOMDocument::loadXML($theData, LIBXML_NOERROR);
if ($doc !== FALSE) {
$text = \'\'; // used to accumulate output while walking XML tree
foreach ($doc->documentElement->childNodes as $child) {
if ($child->nodeType == XML_TEXT_NODE) { // keep text nodes
$text .= $child->wholeText;
} else if (array_key_exists($child->tagName, $_POST)) {
// replace nodes whose tag matches a POST variable
$text .= $_POST[$child->tagName];
} else { // keep other nodes
$text .= $doc->saveXML($child);
}
}
echo $text . \"\\n\";
} else {
echo \"Failed to parse XML\\n\";
}
?>
</body>
</html>
我需要做的是调用原始XML文件,并将其与$ myFile变量匹配,以便使用表单的提交数据对其进行处理。我不能只将绝对引用放在变量字段中,因为此过程将使用多个文件(取决于用户单击的文件)。同样,当提交XSL表单时,我需要找到一种方法来调用PHP脚本中的原始XML文件。
任何帮助都会很棒。
谢谢,
Ë
没有找到相关结果
已邀请:
2 个回复
仇聘发栖
襄挟款籍