[英]create webform from xpath expressions
我想构建一个应用程序来编辑复杂xml文档中的某些字段。 (iso19139)。 想法是在配置文件中标识应使用xpath表达式编辑的字段,并自动生成相应的表单。
因此,应用程序将使用xpath从xml中提取字段的当前值,以表格形式显示它,并在提交表格时放入新值。
提取和写入值是通过创建,修改和写出DOM来完成的,但是我想知道是否有人建议我如何自动从xpath表达式列表中创建webform并将formfield绑定到xml字段由xpath引用。
有一些工具可以为语法已知的xml文档生成XForms,但是它们并不是解决方案,因为相应的语法太复杂了。
这是草图。 我们有一个包含个人信息的XML文档,我们要在其中编辑街道地址和兄弟。 配置文件中的xpath表达式标识应可编辑的字段。
配置文件:(以xml为例)
<config>
<field>
<xp>/person/home/street/</xp>
<name>Address</name>
</field>
<field>
<xp>/person/family/brother/</xp>
<name>Family (brother)</name>
</field>
</config>
应用:
会生成一个带有文本字段作为地址和兄弟的网络表单。
谢谢库尔特
这是ASP.Net中的一个简单版本...
该页面将具有以下控件。
<asp:PlaceHolder runat="server" ID="phContainer">
</asp:PlaceHolder>
<asp:Button runat="server" Text="Save" ID="btnSave" onclick="btnSave_Click" />
这是构建表单然后将数据保存回Xml的代码
public partial class _Default : System.Web.UI.Page
{
XElement xE;
protected void Page_Load(object sender, EventArgs e)
{
xE = XElement.Parse(@"<Fields>
<Field1>Field 1 Data</Field1>
<Field2>Field 2 Data</Field2>
<Field3>Field 3 Data</Field3>
</Fields>");
foreach (XElement xe in xE.Elements())
{
Label lbl = new Label();
lbl.Text = xe.Name.ToString();
lbl.Width = 150;
phContainer.Controls.Add(lbl);
TextBox tb = new TextBox();
tb.ID = xe.Name.ToString();
tb.Text = xe.Value;
phContainer.Controls.Add(tb);
phContainer.Controls.Add(new LiteralControl("<br />"));
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
foreach (Control c in phContainer.Controls)
if (c.GetType() == typeof(TextBox))
xE.Element(((TextBox)c).ID).Value = ((TextBox)c).Text;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.