Подход с этим заключается в использовании XSL для выполнения преобразования полученного XML для генерации HTML-кода, который вы хотите отобразить. Вот пример для начала:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:uc="http://www.abc.com/userContent" exclude-result-prefixes="uc">
<xsl:output method="html" />
<xsl:template match="/uc:userContent">
<div class="container">
<xsl:apply-templates select="uc:questions/uc:question" />
</div>
</xsl:template>
<xsl:template match="uc:question">
<b>Shopper asked:</b> <xsl:value-of select="uc:text" />
<ul>
<xsl:apply-templates select="uc:answer" />
</ul>
</xsl:template>
<xsl:template match="uc:answer">
<li>
<b>
<xsl:value-of select="uc:user/uc:firstName" />
<xsl:text> </xsl:text>
<xsl:value-of select="uc:user/uc:lastName" />:
</b>
<xsl:value-of select="uc:text" />
</li>
</xsl:template>
</xsl:stylesheet>
Вы бы поместили этот xsl в файл, называемый, например, "userContent.xsl", где-то на вашем веб-сайте, для простоты примера мы поместим его в корень.
Теперь нам нужно привести в порядок ваш код:
<%
Option Explicit
Dim myRSSFile: myRSSfile = "http://abc.com"
Dim getPage: Set getPage = Server.CreateObject("MSXML2.XMLHTTPServer.3.0" )
getPage.Open "GET", myRSSfile, false
getPage.Send
Dim dom : dom = getPage.responseXml
Dim xsl : Set xsl = CreateObject("MSXML2.DOMDocument.3.0")
xsl.async = false
xsl.load Server.MapPath("/userContent.xsl")
%>
<html>
<head>
<title>Some Content</title>
</head>
<body>
<%
Response.Write dom.TransformNode(xsl)
%>
</body>
</html>
Примечания:
- Не используйте XMLHTTP в ASP, он не предназначен для использования на сервере.
- Нет необходимости отправлять заголовок типа контента в запросе xml http, если вы не отправляете какой-либо контент.
- Если вы хотите манипулировать полученным XML, используйте свойство
responseXml
, которое дает вам загруженный XML-документ для воспроизведения, а не responseText
. (Конечно, не используйте RegEx для этого).
- Всегда включайте
Option Explicit
в свои скрипты, это сэкономит вам время на поиск ошибок.