我正在试图找到一种利用PHP脚本的方法:
所以,如果我有一个像这样的XML文件:
<profile>
Hello, my name is <name></name>. I am <age></age> years old. I live in <place></place>
</profile>
单击指向该文件的链接后,PHP将生成如下表单:
<form>
Name:
Age:
Place:
</form>
然后在填写并提交表格后(假设此人是25岁的Joel来自波士顿),以下内容将写入屏幕:
你好,我叫乔尔。我25岁。我住在波士顿。
任何代码或指向优秀教程的内容都将受到赞赏。
THX
电子。
答案 0 :(得分:2)
你应该使用XSLT ..
使用浏览器:
的xml:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<profile>
Hello, my name is <name></name>. I am <age></age> years old. I live in <place></place>
</profile>
的xsl:
<?xml version="1.0" encoding="utf-8"?>
<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="profile">
<form>
<xsl:for-each select="child::*">
<label>
<xsl:value-of select="name()"/>:
<input name="{name()}" type="text" />
</label>
<br />
</xsl:for-each>
</form>
</xsl:template>
</xsl:stylesheet>
输出:
<form>
<label>name: <input type="text" name="name"></label><br />
<label>age: <input type="text" name="age"></label><br />
<label>place: <input type="text" name="place"></label><br />
</form>
你可以使用php的xsl扩展名。
答案 1 :(得分:0)
如果占位符始终采用<tag></tag>
形式,则可以使用正则表达式或简单字符串搜索进行搜索,生成表单字段,然后对原始字符串执行字符串查找/替换以获取合并版本。这可能比通过XML解析方法更容易,因为XML标记之间的内容将被解析为内容节点。
就此而言,我会使用像%Name%
或$Name$
这样的占位符而不是XML标记,因为那样你就可以用简单的字符串匹配方法解析它,而不会干扰整个XML结构