none
Desifren este ejemplo de "Object.selectSingleNode" RRS feed

  • Pregunta

  • Hola.

    Les presentare dos ejemplo, donde el primero esta completo por que se cual es el resultado que arroja y el segundo se deriba del primero pero con un cambio muy minimo y de este no se cual es el resultado que arroja.

    Espero que para el segundo ejemplo si me puedan ayudar a decirme cual sera el output.

    1) ejemplo_________________________________________________

    XML:
    <Vocabulary>
       <Word type="noun" level="1">
          <English>cat</English>
          <Spanish>gato</Spanish>
       </Word>
       <Word type="verb" level="1">
          <English>speak</English>
          <Spanish>hablar</Spanish>
       </Word>
       <Word type="adj" level="1">
          <English>big</English>
          <Spanish>grande</Spanish>
       </Word>
    </Vocabulary>

    Code (VBScript):
    Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
    objXMLDoc.async = False
    objXMLDoc.load("vocabulary.xml")

    Set Node = objXMLDoc.documentElement.selectSingleNode("Word/Spanish")
    document.write(Node.text)

    Output:
    gato

    2) Ejemplo__________________________________________________

    XML:
    <Vocabulary>
       <Word type="noun" level="1">
          <English>cat</English>
          <Spanish>gato</Spanish>
       </Word>
       <Word type="verb" level="1">
          <English>speak</English>
          <Spanish>hablar</Spanish>
       </Word>
       <Word type="adj" level="1">
          <English>big</English>
          <Spanish>grande</Spanish>
       </Word>
    </Vocabulary>

    Code (VBScript):
    Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
    objXMLDoc.async = False
    objXMLDoc.load("vocabulary.xml")

    Set Node = objXMLDoc.documentElement.selectSingleNode("./Spanish")
    document.write(Node.text)

    Output:
    ????????????????

    Fijense que la unica diferencia es el punto en la linea azul

    Gracias de antemano.

    martes, 17 de octubre de 2006 16:35

Todas las respuestas

  • Ahí esta el problema:

    Set Node = objXMLDoc.documentElement.selectSingleNode("./Spanish")

    Para obtener el valor primer nodo Spanish necesitas decirle //Spanish, eso equivale a Word/Spanish

    Salu2


    jueves, 19 de octubre de 2006 7:44
  • Luis,

     

    Realmente puse el ejemplo anterior por que lo vi cencillo y tal vez podria solucionar mi duda, pero actualmente tengo una aplicacion con estas lineas de codigo:

    Set filas = oxmlP.selectNodes("Invoice/row")   
    a = filas.length

    For k = 0 To a - 1

    If (filas.Item(k).selectSingleNode("./@Tipo_excepcion").Text) = "Contracargos" _
    And (filas.Item(k).selectSingleNode("
    ./@Id_Excepcion").Text) = "0" Then
    Response.write(filas.Item(k).selectSingleNode("./@No_secuencia").Text)
    End if

    Next

    oxmlP es:

    Set oxmlP = Server.CreateObject("MSXML2.DOMDocument")
    oxmlP.loadXML(xmlP)

    xmlP es:

    xmlP = sejecutar.fields(0).value

    sejecutar es:

    Set sejecutar = objFecha.ExecutarSQL("DatosReporteBalAnt '840','" & _
      Request.QueryString("fminima") & "','" & _
      Left(Request.QueryString("tipotran"),3) & "'" , "Reclamaciones")

    objFecha.ExecutarSQL es:

    Set objFecha = Server.CreateObject("Excepciones.clsExepciones")
    (ExecutarSQ es una funcion que se encuentra dentro del componente "Excepciones.clsExepciones" que devuelve un objeto recordset con los resultados de un StoreProcedure)

    ___________________________

    Ahora viene la pregunta:

    Que se supone que debe de presentar en pantalla la linea azul de arriba que esta dentro del For????

    Nota: no tengo ningun error de codigo incorrecto, solo quiero saber cual es la funcionalidad del '.' en esta parte selectSingleNode("./@No_secuencia")

    Muchas Gracias.

    jueves, 19 de octubre de 2006 14:11