1

我正在寻找可以基于 xslt 将 html 转换为 xml 的解决方案。例如:

html:[这是来自 ektron(一个 CMS)的 html]

<p>Name:&#160;<input type="text" name="txtName" id="txtName" ektdesignns_caption="txtName" ektdesignns_name="txtName" title="txtName" ektdesignns_indexed="false" ektdesignns_nodetype="element" style="" size="24" class="design_textfield" value="Enter Name" />&#160;
</p>

<p>Age:<input type="text" name="txtAge" id="txtAge" ektdesignns_caption="txtAge" ektdesignns_name="txtAge" title="txtAge" ektdesignns_indexed="false" ektdesignns_nodetype="element" style="" size="24" class="design_textfield" />&#160;</p>

<p>Place:<input type="text" name="txtPlace" id="txtPlace" ektdesignns_caption="txtPlace" ektdesignns_name="txtPlace" title="txtPlace" ektdesignns_indexed="false" ektdesignns_nodetype="element" style="" size="24" class="design_textfield" />&#160;</p>

<p>&#160;Sex:<select name="rbSex" ektdesignns_maxoccurs="1" size="1" id="rbSex" ektdesignns_caption="rbSex" ektdesignns_name="rbSex" title="rbSex " ektdesignns_indexed="true" ektdesignns_nodetype="element" style="">
    <option selected="selected" value="0">(Select)</option>
    <option value="Male">Male</option>
    <option value="Female">Female</option>
    </select><span style="font-size: 12px; line-height: 0;">&#160;</span><br /><br />&#160;</p>

我手头有相应的 XSLT。

从这两个我想要一个XML如下

<root>
  <txtName>DemoName</txtName>
  <txtAge>21</txtAge>
  <txtPlace>UK</txtPlace>
  <rbSex>Female</rbSex>
</root>

我找到了一个执行此功能的应用程序 XMLWrench,但我需要一个 C#.net 解决方案,更像是一个 API 或其他东西。

编辑二:我也需要表单中的值,添加到 xml.eg:如果这些在名称文本框中存在名称,则应将其添加到 xml 节点中

4

3 回答 3

3

如果您询问 smartform 配置 html 的 html,您可以使用以下方法。

使用 ContentDesignerWithValidator.ascx 中的 LoadPackage(m_refContApi, editorPackage) 和 TransformXsltPackage 方法将 html 转换为 xml。此页面位于 /Workarea/controls/Editor/ContentDesignerWithValidator.ascx

试试这个。

于 2013-03-28T09:56:47.433 回答
2

如果您使用的是 Ektron,那么您可以使用 SmartForm,它允许您为内容编辑器创建 Web 表单 UI,但它将数据保存为 XML。要访问 XML,只需检索 ContentData 对象,您会注意到该对象的 html 属性是 XML。

于 2013-03-08T16:37:01.157 回答
1

如果您真的必须访问 HTML -> XML 页面,那么我将使用HTML 解析器,然后以编程方式创建 XML。或者,如果您这样做,那么您可以跳过 XSLT/XML 阶段,只构建您的输出 XML。

但是,这个问题表明您使用了错误的方法,我同意Charles Wesley 的回答- 使用智能表格。Ektron HTML 表单用于简单的数据收集,其中数据可以导出到 Excel(例如简单的注册表单)就足够了。

智能表单存储为 XML。您可以通过 Ektron API 创建智能表单。

这是一篇关于结合智能表单和 Ektron HTML 表单的 eGandalf 博客文章,可能有用。

编辑以回应评论- 听起来您仍然走错路并试图与 Ektron 对抗。也许看看API?例如,对于日历项目,您可以使用日历 API

您评论说您希望解决方案“更像 Ektron 的实际操作方式”。Ektron 使用 XSLT 将 XML 转换为 HTML,而不是相反。您应该使用智能表单或 API 以 XML 格式获取结构化数据。HTML 内容应该不需要或需要最少的转换(如果需要转换 HTML,XSLT 不是解决方案)。

请阅读eGandalf关于将表单提交保存为智能表单的博客文章。我认为这涵盖了您的情况。

于 2013-03-11T03:16:34.823 回答