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
  • Syntax 2: Executing an XPATH query on an XML document: Reading the query result
  • Limitations
  • XML functions and threads
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
Executes an XPATH query:
  • in a variable of type xmlDocument.
    WEBDEV - Código NavegadorPHP Not available.
  • in an XML document.
    AndroidWidget Android Not available.
PHP Only the calculation queries performed in an XML document are supported in PHP.
Ejemplo
clDoc is xmlDocument = XMLOpen(n, fromString)
c is xpathResult = XMLExecuteXPath(clDoc, "/root/text()")
IF c.IsValue THEN
	Trace(c.Value)
ELSE
	FOR EACH ANode OF c.Node
		Trace("Node: " + UnNode..Text)
	END
	FOR EACH attrib OF c.Attribute
		Trace("Node: " + attrib.Name)
	END
END
// Load the XML file
MyDoc is string
MyDoc = fLoadText("example.xml")
// Query text: Search for the Index tag
XPATHQuery is string = "Help/Function/Index"
// Create the document
XMLDocument("Example", MyDoc)
IF ErrorOccurred = True THEN
	Error("The file is not in XML format.")
	RETURN
END
b is boolean
b = XMLExecuteXPath("Example", XPATHQuery)
// Is it a calculation query?
IF b = True AND XMLOut("Example") = True THEN
	 // The calculation result is as follows
	 Trace("XMLResult=" + XMLResult("Example"))
END
// Is it a selection XPath query?
IF XMLFound("Example") = True THEN
	// Browse the result selection
	WHILE XMLFound("Example") = True
		Trace(XMLPath("Example"))
		XMLNext("Example")
	END
	// Browse completed, end the query
	XMLCancelSearch("Example")
END
Sintaxis
WEBDEV - Código NavegadorPHP Syntax not available in PHP and browser code

Executing an XPATH query on an xmlDocument variable Ocultar los detalles

<Result> = XMLExecuteXPath(<XML document> , <Text of XPath query>)
<Result>: xpathResult variable
xpathResult variable containing the result of the XPATH query.
Reading the result:
  • The IsValue property allows you to know if the result is a value.
  • For a selection query (the result is not a value), the xpathResult variable must be browsed.
  • For a calculation query (the result is a value), the Value property reads the result.
<XML document>: xmlDocument variable
Name of the xmlDocument variable containing the XML code to analyze.
<Text of XPath query>: Character string
Text of the XPath query to execute.
AndroidWidget Android Syntax not available in Android and Android Widget

Executing an XPATH query on an XML document (syntax kept for backward compatibility) Ocultar los detalles

<Result> = XMLExecuteXPath(<Name of the XML document> , <Text of XPath query>)
<Result>: Boolean
  • True if the query was executed,
  • False otherwise or if no element corresponds to the query.
Reading the result:
  • For a selection query, if the XPATH query has been executed, the XML search functions are used to browse the result of the XPATH query.
  • For a calculation query, XMLResult is used to read the result.
<Name of the XML document>: Character string
Name of the XML document used. This document contains the XML code to study and it was created by XMLDocument.
<Text of XPath query>: Character string
Text of the XPath query to execute.
Observaciones
WINDEViPhone/iPadCódigo de Usuario (UMC)

Syntax 2: Executing an XPATH query on an XML document: Reading the query result

If XMLExecuteXPath returns True, the query has been successfully executed.. The result of the query can be read as follows:
  • Calculation request function XMLFound returns False.
    The result can be read by XMLResult.
    Some examples of calculation queries:
    Counting the number of tags whose name is "ITEM", which means the number of different items found in the order.count(//ITEM)
    Number of tags containing a subelement named <PRICE>count(//*[PRICE])
    Total of the invoicesum(//ITEM[PRICE])- sum(//COUPON[PRICE])
  • Record selection request function XMLFound returns True.
    In a selection query, XMLExecuteXPath changes the current position in the XML document to set the position on the first element of the selection result. Then, XMLNext allows you to browse the selection.
    Some examples of selection queries:
    Browse all the elements with a "unit" attribute.//*[@unit]
    Browse all the tags whose name is "ITEM".//ITEM

    To cancel the query and to browse the entire document again, use XMLCancelSearch.

Limitations

  • Several XPath browse queries cannot be nested.
  • Syntax 1: Execute an XPATH request on a variable of type xmlDocument:
    • The list of nodes is not sorted.
    • The standard used for the XPath query is XPath 1.0.
  • Syntax 2: Executing an XPATH query on an XML document:
    XMLSavePosition and XMLRestorePosition cannot be used to save/restore a position when browsing the result of a select XPath query.

XML functions and threads

If your application uses threads, the XML document is shared between all these threads. For more details on threads, see Managing threads.

If the current position in an XML document is modified in a thread, the current position in this XML document is modified for all the threads.
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd300xml.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 28/03/2025

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