Meddelande

Minska
No announcement yet.

Hämta attribut från xml

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Hämta attribut från xml

    Jag behöver plocka ut consignmentId och orderNo från nedan XML. Men jag får inte till det.

    XML:
    Kod:
    <?xml version='1.0' encoding='UTF-8'?>
    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    	<S:Body>
    		<ns4:bookResponse xmlns:ns2="http://www.x.com/consignment/types/v1_0" xmlns:ns3="http://www.x.com/common/webservice/types/v1_0" xmlns:ns4="http://www.x.com/consignment/types">
    			<result>
    				<consignments consignmentId="137600459735850de1903" orderNo="fe990255">
    Det börjar ju med
    Kod:
    Dim xmlDoc, fil
    set xmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0")
    xmlDoc.async="false"
    fil=Server.mappath("testa.xml")
    xmlDoc.load(fil)
    
    Dim root
    Set root = xmlDoc.documentElement
    Sedan har jag provat flera sätt men inget funkar för mig. Bl.a:
    Kod:
    Set objNamedNodeMap = xmlDoc.documentElement.childNodes(4)
    intConsignmentId = objNamedNodeMap.attributes.getNamedItem("consignmentId").text
    response.write intConsignmentId
    Förslag?

  • #2
    Du kan använda dig av XPath kanske, kan tycka det är lite enklare att jobba med:

    [kod]xmlDoc.setProperty "SelectionLanguage", "XPath"[/kod]

    och använd [kod]xmlDoc.selectSingleNode("//result/consignments/@consignmentId")[/kod]så borde du få ut consignements sen om det är text eller attribute du vill använda dig av så få du nog ändra koden lite.
    "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

    Kommentera


    • #3
      Tackar!

      Nu fick jag ihop två fungerande varianter :-)

      Kod:
      Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
      xmlDoc.async = False
      'xmlDoc.load(Server.MapPath("svar.xml")) 'Om XML i fil
      xmlDoc.loadXML(xmlhttp.responseText) 'Om XMLretur via t.ex. SOAP
      xmlDoc.setProperty "SelectionLanguage", "XPath"
      
      Dim strConsignmentId, strOrderNo
      strConsignmentId = xmlDoc.selectSingleNode("//consignments/@consignmentId").text
      strOrderNo = xmlDoc.selectSingleNode("//consignments/@orderNo").text
      
      response.write "<br>strConsignmentId: " & strConsignmentId & VbCrLf
      response.write "<br>strOrderNo: " & strOrderNo & VbCrLf
      
      Set xmlDoc = Nothing
      Kod:
      Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
      xmlDoc.async = False
      'xmlDoc.load(Server.MapPath("svar.xml")) 'Om XML i fil
      xmlDoc.loadXML(xmlhttp.responseText) 'Om XMLretur via t.ex. SOAP
      xmlDoc.setProperty "SelectionLanguage", "XPath"
      
      Dim data, strConsignmentId, strOrderNo
      set data = xmlDoc.selectSingleNode("//result/consignments")
      strConsignmentId = data.attributes.getNamedItem("consignmentId").text
      strOrderNo = data.attributes.getNamedItem("orderNo").text
      
      response.write "<br>strConsignmentId: " & strConsignmentId & VbCrLf
      response.write "<br>strOrderNo: " & strOrderNo & VbCrLf
      
      Set data = Nothing
      Set xmlDoc = Nothing
      Tack så rackarns mycket!

      Kommentera

      Working...
      X