从 XML 标签生成表单字段
我正在尝试找出一种利用 PHP 脚本的方法,该脚本将:
- 当链接到时打开 XML 文档 单击该文档(从 HTML 页面)。
- 扫描 XML 文档中的标签。
- 创建带有输入的 HTML 表单 基于标签的字段。
- 将输入数据发送回 XML 在标签内(当表单为 提交)并打印 XML 到 HTML。
因此,如果我有一个如下所示的 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>
然后在完成并提交该表单后(假设该人是 Joel,25 岁,来自波士顿),屏幕上将写入以下内容:
你好,我的名字是 Joel。我今年25岁。我住在波士顿。
任何代码或指向好的教程的点将不胜感激。
谢谢
E。
I'm trying to figure out a way to utilize a PHP script that will:
- Open an XML document when a link to
that document is clicked (from an
HTML page). - Scan the XML document for tags.
- Create an HTML form with input
fields based on the tags. - Post the input data back to the XML
within the tags (when form is
submitted) and print the XML
to HTML.
So, if I had an XML file that went like this:
<profile>
Hello, my name is <name></name>. I am <age></age> years old. I live in <place></place>
</profile>
Upon clicking a link to that file, PHP would generate a form like so:
<form>
Name:
Age:
Place:
</form>
Then upon completing and submitting the form (let's say the person is Joel, 25, from Boston), the following would be written to the screen:
Hello, my name is Joel. I am 25 years old. I live in Boston.
Any code or points to good tutorials would be appreciated.
THX
E.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该为此使用 XSLT ..
使用浏览器:
xml:
xsl:
输出:
您可以使用 php 的 xsl 扩展。
You should use XSLT for this..
With browser:
xml:
xsl:
output:
There is an xsl extension for php you can use.
如果您的占位符始终采用
形式,您可以使用正则表达式或简单字符串搜索进行搜索,生成表单字段,然后在原始字段上执行字符串查找/替换获得合并版本。这可能比通过 XML 解析方法更容易,因为 XML 标记之间的内容将被解析为内容节点。就此而言,我会使用像
%Name%
或$Name$
这样的占位符来代替 XML 标记,因为这样您就可以使用简单的字符串匹配方法来解析它,不影响整个 XML 结构。If your placeholders always take the form
<tag></tag>
, you can search using regular expressions or simple string searching, generate your form fields, then do a string find/replace on the original to get the merged version. That might be easier than doing it through XML parsing methods, because the content between the XML tags will be parsed as content nodes.For that matter, I would use a placeholder like
%Name%
or$Name$
instead of an XML tag, because then you can just parse it with simple string matching methods, without interfering with the overall XML structure.