gpt4 book ai didi

xml - 使用 ASP VBScript 的 XML/SelectNodes 问题

转载 作者:行者123 更新时间:2023-12-02 04:50:13 26 4
gpt4 key购买 nike

在显示来自 XML 的信息时遇到问题。我认为这与选择正确的节点(公司名称)有关。需要一个新的意见......感觉我可能忽略了一些非常简单的事情。代码如下。

XML

<GovTalkMessage>
<EnvelopeVersion>1.0</EnvelopeVersion>
<Header>
<MessageDetails>
<Class>CompanyDetails</Class>
<Qualifier>response</Qualifier>
<TransactionID>9999999999999</TransactionID>
<GatewayTest>TRUE</GatewayTest>
<GatewayTimestamp>2013-09-24T17:51:41-00:00</GatewayTimestamp>
</MessageDetails>
<SenderDetails>
<IDAuthentication>
<SenderID>******</SenderID>
<Authentication>
<Method>CHMD5</Method>
<Value></Value>
</Authentication>
</IDAuthentication>
<EmailAddress>rte@rrfsolicitors.com</EmailAddress>
</SenderDetails>
</Header>
<GovTalkDetails>
<Keys/>
</GovTalkDetails>
<Body>
<CompanyDetails>
<CompanyName>MILLENNIUM STADIUM PLC</CompanyName>
<CompanyNumber>03176906</CompanyNumber>
<RegAddress>
<AddressLine>MILLENNIUM STADIUM</AddressLine>
<AddressLine>WESTGATE STREET</AddressLine>
<AddressLine>CARDIFF</AddressLine>
<AddressLine>CF10 1NS</AddressLine>
</RegAddress>
</CompanyDetails>
</Body>
</GovTalkMessage>

ASP代码:

Set XMLDom = CreateObject("MSXML2.DomDocument.6.0")
XMLDom.Async = False
XMLDom.LoadXML (theXML)

theNode = "/GovTalkMessage/Body/CompanyDetails"

Set NodeList = XMLDom.SelectNodes(theNode)
nodeCount = XMLDom.SelectNodes(theNode).Length
If XMLDom.ParseError = 0 Then
Response.Write(nodeCount)
For Each Node in NodeList
response.Write(Node.Text & "<br>")
Next
Else
response.Write("Error Parsing Results")
End If
Set XMLDom = Nothing

结果:节点数 = 0

最佳答案

您的 XML 文件使用命名空间。节点

<CompanyDetails <b>xmlns="http://xmlgw.companieshouse.gov.uk/v1-0/schema"</b>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlgw.companieshouse.gov.uk/v1-0/schema
http://xmlgw.companieshouse.gov.uk/v1-0/schema/CompanyDetails-v2-1.xsd">

定义了一个默认命名空间 http://xmlgw.companieshouse.gov.uk/v1-0/schema .除非节点使用显式命名空间(例如 <xsi:Something>),否则将使用默认命名空间,并且您还必须在代码中定义和使用该默认命名空间。这样的事情应该有效:

uri = "http://xmlgw.companieshouse.gov.uk/v1-0/schema"
XMLDom.setProperty "SelectionNamespaces", "xmlns:ns='" & uri & "'"

theNode = "//ns:CompanyDetails"
Set NodeList = XMLDom.SelectNodes(theNode)
nodeCount = NodeList.Length

WScript.Echo nodeCount

关于xml - 使用 ASP VBScript 的 XML/SelectNodes 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18987954/

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