如何通过ASP读取远程XML?

时间:2010-09-19 10:37:05

标签: xml asp-classic

                01.00                 1250484                        0

  </Parameter>
  <Parameter name="Row1" id="3">
     <Value>19/09/2010 12:19:40|iliani|08000367|63|        0.50|42560175||744213|00|Y</Value>
  </Parameter>
  <Parameter name="xICBSXPProxy.AppType" id="4">
     <Value>xEXTServicePrep</Value>
  </Parameter>
  <Parameter name="xICBSXPProxy.ProcessingLevel" id="5">

     <Value>1</Value>
  </Parameter>
  <Parameter name="TotalRowCount" id="6">
     <Value>1</Value>
  </Parameter>
  <Parameter name="xICBSXPProxy.ProcessingAccept" id="7">
     <Value>Y</Value>

  </Parameter>
  <Parameter name="RowCount" id="8">
     <Value>1</Value>
  </Parameter>
</Message>
</ICBSProxy>

这是交易的支付网关的响应。 我需要通过ASP从这个远程xml读取参数row1更准确地说是744213哪个是transid的列,而Y表示如果有N则接受事务然后被拒绝以便在我的db中添加trans和transid的状态。 任何可以帮助我的示例代码?我搜索了一整天没有成功, 谢谢你们

1 个答案:

答案 0 :(得分:1)

这是加载xml的方法

Set XMLDom = CreateObject("MSXML2.DOMDocument.4.0")
XMLDom.setProperty "SelectionLanguage", "XPath"


objxml.Load "<URL OF XML HERE>"

这是为了获取Row1文本

xmltext = XMLDom.documentElement.selectSingleNode("//Parameter[@name='Row1']/value").text

以下是如何分割文本(如果它遵循与示例相同的原则

Set r = New RegExp
r.ignorecase = true
r.global = true
r.pattern = "\|\|(.*?)\|.*?\|(.*?)$"

set matches = r.execute( xmltext )(0).submatches

transid = matches.item(0)
yesno = matches.item(1)