gpt4 book ai didi

html - 使用经典 ASP 将 HTML 保存为 XML

转载 作者:数据小太阳 更新时间:2023-10-29 02:27:44 25 4
gpt4 key购买 nike

我正在为我兄弟的网站开发一个非常简单的 CMS 系统。
我使用的是经典 ASP,内容存储在一个 XML 文件中,我用 JavaScript 富文本编辑器创建了一个简单的 Web 表单,供他编辑内容。这意味着 XML 文件中将保存 HTML 代码。我相信这将始终是格式良好的 XHTML。

例如

<content>
<item id="20110611103415" sort="1" status="P">
<description><strong>18th</strong> century <span style="font-style: italic;">mahogany </span>chest of drawers</description>
</item>
</content>

在网页上显示时一切正常,只要我使用 <xsl:copy-of select="description/node()"/>在 XSLT 文件中,HTML 会按应有的方式显示。

当我尝试将此 HTML 从表单保存回 XML 文件时出现问题。我正在使用以下代码来执行此操作:

set objXML = Server.CreateObject("MSXML2.DOMDocument")
objXML.async = false
strXMLFile = server.MapPath("content.xml")
objXML.load strXMLFile

Set objRoot = objXML.documentElement

Set objItem = objRoot.SelectSingleNode("item[@id='" & strID & "']")
Set objField = objSaleItem.SelectSingleNode("description")
objField.text = Request.Form("description")
objXML.save strXMLFile

当我这样做时,我最终会在我的 XML 文件中得到以下内容:

<description>&lt;strong&gt;18th&lt;/strong&gt; century &lt;span style="font-style: italic;"&gt;mahogany &lt;/span&gt;chest of drawers</description>

我在网上搜索过,试图找出如何防止 HTML 被这样编码,但我在任何地方都找不到解决方案。

如果有人能帮助我,我将不胜感激。

谢谢安迪

最佳答案

即使您确信表单的结果始终是有效的 XHTML,您也应该通过将其加载到 DOM 解析器中来验证它。这将强制它生效并允许您保存并再次取出它。

set formDescriptionXML = Server.CreateObject("MSXML2.DOMDocument")

' loadXML returns a false if the XML is not valid
If Not (formDescriptionXML.loadXML (Request.Form("description"))) Then
' handle the load error
End If

Set objRoot = objXML.documentElement

Set objItem = objRoot.SelectSingleNode("item[@id='" & strID & "']")
Set objField = objSaleItem.SelectSingleNode("description")

objField.appendChild(formDescriptionXML.documentElement)

objXML.save strXMLFile

如果表单也只能包含文本,您可以使用 If Then block 处理这种情况。

关于html - 使用经典 ASP 将 HTML 保存为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com