使用ASP解析XML

时间:2013-12-05 22:09:22

标签: xml asp-classic xml-parsing

我有下面的代码,我只需要帮助找出从下面的内容节点获取html而不是明文的最佳方法。非常感谢任何帮助。

sKey = objItem.GetAttribute("id")             
Title = objItem.selectSingleNode("title").text
Blurb = objItem.selectSingleNode("blurb").text
Content = objItem.selectSingleNode("content").text
Image = objItem.selectSingleNode("image").text
myDate = objItem.selectSingleNode("date").text
myMonth = objItem.selectSingleNode("month").text

2 个答案:

答案 0 :(得分:0)

根据我的经验,使用Classic ASP处理XML的最佳方法是使用XSL样式表。

XSLT在基础层面上很容易学习,尽管学习曲线稍后会变得更加陡峭。

我推荐w3schools教程

http://www.w3schools.com/xsl/

一旦你编写了样式表,如果你有一个本地XML源,你的asp代码就会是这样的

set xml = Server.CreateObject("Msxml2.DomDocument")
xml.load(Server.Mappath("source.xml"))
set xsl = Server.CreateObject("Msxml2.DomDocument")
xsl.load(Server.Mappath("stylesheet.xsl"))
Response.Write(xml.transformNode(xsl))
set xsl = nothing
set xml = nothing

如果xml来自远程网址,那么它会更复杂一些

set xml = Server.CreateObject("Msxml2.DomDocument")
xml.setProperty "ServerHTTPRequest", true
xml.async = false
xml.validateOnParse = false
xml.load("http://xmlsource.com")
set xsl = Server.CreateObject("Msxml2.DomDocument")
xsl.load(Server.Mappath("stylesheet.xsl"))
Response.Write(xml.transformNode(xsl))
set xsl = nothing
set xml = nothing

修改

<h2><%= Title %></h2>

答案 1 :(得分:0)

您可以使用xml属性而不是现在使用的text属性来获取节点的XML:

    dim o_xml, o_node
    set o_xml = Server.CreateObject("Msxml2.DomDocument")
    o_xml.load("books.xml")
    set o_node = o_xml.selectSingleNode("//catalog/book[@id='bk102']")
    Response.Write Server.htmlEncode(o_node.xml)

文档:http://msdn.microsoft.com/en-us/library/ms755989%28v=vs.85%29.aspx