|
|
|
|
- Búsqueda y navegación de documentos XML
- Funciones y subprocesos XML
- Borrar un elemento durante una búsqueda
Realiza una búsqueda en un Document XML. Esta búsqueda puede ser cancelada por XMLCancelSearch. // 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: | | XMLAttribute | Búsqueda realizada sobre los nombres de los atributos. | XMLChildItem | Bú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.
| XMLCurrentLevel | Bú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). | XMLTag | Búsqueda realizada sobre los nombres de las etiquetas. | XMLValue | Bú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: | | XMLContains | Búsqueda realizada sobre los elementos que contienen el valor buscado. | XMLExact (valor predeterminado) | Búsqueda exacta y sensible a mayúsculas y minúsculas. | XMLIgnoreCase | Buscar ignorando el caso de la etiqueta. Puede combinarse con XMLContains, XMLStartWith o XMLExact. | XMLStartWith | Búsqueda realizada sobre los elementos a partir del valor buscado. | XMLWithNamespace | Búsqueda realizada en los elementos que contienen un espacio de nombres.
|
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. 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
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|