PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
  • Searching and browsing XML documents
  • XML functions and threads
  • Deleting an element during a search
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Performs a search in an XML document. This search can be canceled by XMLCancelSearch.
Versions 15 and later
Android This function is now available for Android applications.
New in version 15
Android This function is now available for Android applications.
Android This function is now available for Android applications.
Versions 17 and later
iPhone/iPad This function is now available for iPhone/iPad applications.
New in version 17
iPhone/iPad This function is now available for iPhone/iPad applications.
iPhone/iPad This function is now available for iPhone/iPad applications.
Versions 18 and later
Android Widget This function is now available in Android widget mode.
New in version 18
Android Widget This function is now available in Android widget mode.
Android Widget This function is now available in Android widget mode.
Versions 21 and later
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
New in version 21
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
// 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")
Syntax
<Result> = XMLFind(<XML document> , <Sought value> [, <Type of browse> [, <Search options>]])
<Result>: Boolean
  • True if the sought element is found,
  • False otherwise.
<XML document>: Character string (with quotes)
Name of XML document used. This document contains the XML code to study and it was created by XMLDocument.
<Sought value>: Character string (with quotes) or NULL keyword
Value sought in the XML document.
If this parameter is set to NULL, all the tags and attributes of the XML document will be read from the current element, according to the search criteria.
<Type of browse>: Optional constant (or combination of constants)
Type of browse to perform:
XMLAttributeSearch performed on the names of attributes.
XMLTagSearch performed on the names of tags.
XMLContinue
  • Combined with XMLTag, XMLAttribute or XMLValue, continues the search in the rest of document while moving up in the levels of the tree structure (if necessary).
  • Combined with XMLChildItem, continues the search in the rest of the document while moving up and down in the levels of the tree structure.
XMLElement
(Default value)
Search performed on the names of tags and attributes (equivalent to XMLTag + XMLAttribute).
XMLCurrentLevelSearch performed in the current level of tree structure.
XMLChildItemSearch performed in all the child tags. Must be combined with XMLTag, XMLAttribute or XMLValue.
XMLValueSearch performed on the values of tags and attributes.
<Search options>: Optional constant (or combination of constants)
Search options that will be taken into account:
XMLWithNamespaceSearch performed on the elements containing a namespace.
XMLStartWithSearch performed on the elements starting with the sought value.
XMLContainsSearch performed on the elements containing the sought value.
XMLExact
(default value)
Exact-match and case-sensitive search.
XMLIgnoreCaseSearch ignoring the case of the tag. Can be combined with XMLContains, XMLStartWith or XMLExact.
Remarks

Searching and browsing XML documents

XMLFind starts the search from the current position in the XML document. To search in the entire document, it is recommended to use XMLRoot before using XMLFind.
XMLFind affects the current browse. XMLNext and XMLPrevious will be positioned on the next and previous elements corresponding to the search. If the search fails (no element found), the current position before the beginning of the search is kept.
To cancel the search, use XMLCancelSearch. Furthermore, XMLFirst, XMLLast, XMLRoot, XMLParent and XMLChild cancel the current search.

XML functions and threads

If your application uses threads, the XML document is shared between all these threads. For more details on threads, see Gestion des 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.

Deleting an element during a search

XMLDelete used during a search cancels the search.
Example to avoid (this code does not operate):
// 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)
The following code must be used:
// 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
Component: wd270xml.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment