明らかに、私は次のようなxmlを吐くことが良いアイデアだと決断した人をむしろ打ち負かすのですが、悲しいかな私はできません。データを取得するための正しいXPathのだろう何XPathクラシックASP
<search>
<key_0>
<ContentTitle>blah</ContentTitle>
</key_0>
<key_1>
<ContentTitle>blah blah</ContentTitle>
</key_1>
</search>
:;-)
は、私は次のXMLを持っています。 ノード名が毎回 'key'だった場合、次のaspは// search/keyのxpathで完全にジョブを実行します。しかし、私はこれを行うための正しいxpath /方法、あるいはそうでない場合にコードを修正する方法を理解することはできません。
誰でも任意のアイデア?
Dim mydoc : Set mydoc=Server.CreateObject("Microsoft.XMLDOM")
mydoc.async=false
mydoc.loadXML(xmlFile)
If mydoc.parseError.errorcode<>0 then
Response.write mydoc.parseError.errorcode & " is the error code!<br />"
Else
Set xmlPNode = mydoc.selectNodes("//search/key")
If(xmlPNode.Length=0) Then
response.write "No results found!"
Else
Dim iTotalResults : iTotalResults = (xmlPNode.Length - 1)
Dim i
For i = 0 to iTotalResults
strContentTitle=GetXMLItem("ContentTitle", i)
Next
End If
Set xmlPNode = Nothing
End if
Function GetXMLItem(strpItem, ipValue)
Dim nlOutput : Set nlOutput = xmlPNode(ipValue).selectNodes(strpItem)
If(nlOutput.Length<>0) Then
GetXMLItem=nlOutput(0).Text
Else
GetXMLItem=""
End If
End Function
は時々あなたが最もよい事設計が不十分なXMLを処理するタスクを持っている場合は、より良いXMLに(XSLTを使用して)それを変換することによって開始することです。そうすれば、悪いことを処理する作業は一度しか行われなくてはなりません。 –
これは正しい方法です。とてもありがとう! MSXML2.DomDocument.4.0に変更 –