AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de archivos XML
  • Búsqueda y navegación de documentos XML
  • Funciones y subprocesos XML
  • Borrar un elemento durante una búsqueda
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Realiza una búsqueda en un Document XML. Esta búsqueda puede ser cancelada por XMLCancelSearch.
Observación: Para realizar una consulta XPath, utilice XMLExecuteXPath.
Ejemplo
// Search from current position
XMLFind("XMLDoc", "pri", XMLTag + XMLChildItem, XMLStartWith)
WHILE XMLFound("XMLDoc") = True
Info("Tag found " + XMLElementName("DocXML"))
// Next element in the search
XMLNext("XMLDoc")
END
XMLCancelSearch("XMLDoc")
// Positions at the root of document
XMLRoot("XMLDoc")
// Exact-match search from the beginning of document
XMLFind("XMLDoc", "price", XMLTag + XMLContinue, XMLExact)
WHILE XMLFound("XMLDoc") = True
Info("Tag found " + XMLElementName("DocXML"))
// Next element in the search
XMLNext("XMLDoc")
END
XMLCancelSearch("XMLDoc")
Sintaxis
<Result> = XMLFind(<XML document> , <Sought value> [, <Type of iteration> [, <Search options>]])
<Result>: booleano
  • True si se encuentra el elemento buscado,
  • False en caso contrario.
<XML document>: Cadena de caracteres
Nombre del XML Document utilizado. Este Document contiene el código XML a estudiar y fue creado por XMLDocument.
<Sought value>: Cadena de caracteres (con comillas) o palabra clave NULL
Valor buscado en el XML Document.
Si este parámetro se establece como NULL, se leerán todas las etiquetas y atributos del XML Document del elemento actual, según los criterios de búsqueda.
<Type of iteration>: Constante o combinación de constantes opcional
Tipo de iteración a realizar:
XMLAttributeBúsqueda realizada sobre los nombres de los atributos.
XMLChildItemBúsqueda realizada en todas las etiquetas hijo. Debe combinarse con XMLTag, XMLAttribute o XMLValue.
XMLContinue
  • Junto con XMLTag, XMLAttribute o XMLValue, continúa la búsqueda en el resto del documento ascendiendo en los niveles de la jerarquía (si es necesario).
  • Junto con XMLChildItem, continúa la búsqueda en el resto del documento, ascendiendo y descendiendo en los niveles de la jerarquía.
XMLCurrentLevelBúsqueda realizada en el nivel actual de la estructura de árbol.
XMLElement
(Valor predeterminado)
Búsqueda realizada en los nombres de etiquetas y atributos (equivalente a XMLTag + xmlAttribute).
XMLTagBúsqueda realizada sobre los nombres de las etiquetas.
XMLValueBúsqueda realizada sobre los valores de las etiquetas y atributos.
<Search options>: Constante o combinación de constantes opcional
Opciones de búsqueda que se tendrán en cuenta:
XMLContainsBúsqueda realizada sobre los elementos que contienen el valor buscado.
XMLExact
(valor predeterminado)
Búsqueda exacta y sensible a mayúsculas y minúsculas.
XMLIgnoreCaseBuscar ignorando el caso de la etiqueta. Puede combinarse con XMLContains, XMLStartWith o XMLExact.
XMLStartWithBúsqueda realizada sobre los elementos a partir del valor buscado.
XMLWithNamespaceBúsqueda realizada en los elementos que contienen un espacio de nombres.
WEBDEV - Código Navegador Esta constante no está disponible.
Observaciones

Búsqueda y navegación de documentos XML

La función XMLFind inicia la búsqueda a partir de la posición actual en el documento XML. Para buscar en toda la Document, se recomienda utilizar XMLRoot antes de utilizar XMLFind.
XMLFind afecta a la búsqueda actual. XMLNext y XMLPrevious se situarán en los elementos siguiente y anterior correspondientes a la búsqueda. Si la búsqueda falla (no se encuentra ningún elemento), se mantiene la posición actual antes del inicio de la búsqueda.
Para Cancel la búsqueda, utilice XMLCancelSearch. Además, XMLFirst, XMLLast, XMLRoot, XMLParent y XMLChild Cancel la búsqueda actual.

Funciones y subprocesos XML

Si su aplicación utiliza hilos, el XML Document se comparte entre todos estos hilos. Para más detalles sobre los hilos, véase Gestión de hilos.
Si la posición actual en un XML Document se modifica en un thread, la posición actual en este XML Document se modifica para todos los thread s.

Borrar un elemento durante una búsqueda

El uso de XMLDelete durante una búsqueda cancela la búsqueda.
Ejemplo a evitar (este código no funciona):
// Positions at the root of document
XMLRoot(:m_sDocName)
// Finds all the "txsr" from the root in order to delete them
XMLFind(:m_sDocName, CParagraph::CST_TAG, XMLTag + XMLChildItem + XMLContinue, XMLExact)
WHILE XMLFound(:m_sDocName) = True
XMLDelete(:m_sDocName)
// Next element in the search
XMLNext(:m_sDocName)
END
XMLCancelSearch(:m_sDocName)
Se debe utilizar el siguiente código:
// Deletion during a search
// Positions at the root of document
XMLRoot(:m_sDocName)
LOOP
// Finds all the "txsr" from the root in order to delete them
XMLFind(:m_sDocName, CParagraph::CST_TAG , ...
  XMLTag + XMLChildItem + XMLContinue, XMLExact)
IF XMLFound(:m_sDocName) = True THEN
XMLDelete (:m_sDocName)
ELSE
BREAK
END
END
Componente: wd290xml.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Video XmlFind
https://youtu.be/v3TCiIa6ZbU

https://windevdesenvolvimento.blogspot.com/2019/04/dicas-2079-windevxml22lerduplicatasnotas.html

//
EDT_XML=fLoadText(EDT_procura_xml)// estou lendo o conteudo do xml, que encontramos
XMLDocument("xml_notas",EDT_XML)
XMLFind("xml_notas",Null,XMLContinue+XMLChildItem)
TableDeleteAll(TABLE_DUPLICATA)
nome_tag is string=""
sNumero_duplicata is string=""
WHILE XMLFound("xml_notas")
SWITCH XMLElementType("xml_notas")
CASE XMLTag :
nome_tag = XMLElementName("xml_notas")
SWITCH nome_tag
CASE "nDup"
sNumero_duplicata=(XMLData("xml_notas"))
OTHER CASE
END
IF sValor_duplicata<>"" THEN
TableAddLine(TABLE_DUPLICATA,sNumero_duplicata,sData_vencimento,sValor_duplicata)
sNumero_duplicata=""
END
END
XMLNext("xml_notas")
END
amarildo
19 04 2019
LER ITEM XML
TableDeleteAll(TABLE_NSU)
sNome_tag is string=""
sNome_Atributo is string=""
s_meu_xml is string=EDT_xml //s_meu_xml is string=fLoadText(s_xml_documento)
XMLDocument("XML",s_meu_xml)
EDT_tpAmb=XMLRead("XML","/retDistDFeInt/tpAmb")
XMLFind("XML",Null,XMLContinue+XMLChildItem)
WHILE XMLFound("XML")
SWITCH XMLElementType("XML")
CASE XMLTag :
sNome_tag = XMLElementName("XML")
CASE XMLAttribute
IF sNome_tag="docZip" THEN
sNome_Atributo = XMLData("XML")
IF IsNumeric(sNome_Atributo) THEN
TableAddLine(TABLE_NSU,sNome_Atributo)
END
END
END
XMLNext("XML")
END
XMLClose("XML")

// BLOG COM VIDEO E EXEMPLO

http://windevdesenvolvimento.blogspot.com.br/2017/06/aula-1187-windev-010-xml-leritensxml.html

https://www.youtube.com/watch?v=8PcM8hBEM0w



De matos
24 06 2017

Última modificación: 24/06/2022

Señalar un error o enviar una sugerencia | Ayuda local