Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
9.5
10.0
10.1
10.2
10.3
10.4
10.5
11.0
11.1
11.2
Statistic
FMM
Blog
Performs an XPath query.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
XML | 3.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example | Flags |
---|---|---|---|
xml | The XML you'd like to parse. Can be XML as text or the reference returned by XML.Parse function, so you can make several times queries to the XML without parsing it each time. |
"<hello>Hello World</hello>" | |
path | The XPath you'd like to query. | "/*" | |
namespaceList | List of namespaces. This is a list of known namespaces in "<prefix1>=<href1> <prefix2>=<href2> ..." format. | "SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/" | Optional |
Flags | Various Flags. Add 1 to ignore errors in xml and continue parsing. This may lead to not everything in the xml being read. Add 2 to return a list of xml nodes as text instead of xml. (new in 5.4) Add 4 if you do not like the XML to be formatted. Add 8 to remove all namespaces before query to have queries easier. (new in 6.3) |
0 | Optional |
Returns xml text.
Query the Hello World text:
MBS( "XML.Query"; "<hello>Hello World</hello>"; "/hello/text()" )
Example result: Hello World
Query an attribute of a XML Node:
MBS("XML.Query"; "<OrderRequestHeader orderID=\"1629\" orderDate=\"2013-07-26T12:20:27\" type=\"new\"><Money>123.00</Money></OrderRequestHeader>"; "/OrderRequestHeader/@orderID" )
Example result:
<?xml version="1.0" encoding="UTF-8"?>
orderID="1629"
Query an attribute of a XML Node as string:
MBS("XML.Query"; "<OrderRequestHeader orderID=\"1629\" orderDate=\"2013-07-26T12:20:27\" type=\"new\"><Money>123.00</Money></OrderRequestHeader>"; "string(/OrderRequestHeader/@orderID)" )
Example result: 1629
Query all text from all nodes named reference ignoring namespaces:
MBS( "XML.Query"; XML Query::XML; "//*[local-name()='reference']/text()"; ""; 2 )
Finds a Field node where attribute name is "Class":
MBS( "XML.Query"; $xml; "/CDETS/Defect/Field[@name='Class']/text()")
Finds second companyname node in xml data with namespace invoice:
MBS("XML.Query"; XML Query::XML; "//invoice:companyname[2]"; "invoice=http://www.forum-datenaustausch.ch/invoice"; 2)
Query node without namespaces:
MBS( "XML.Query"; "<cfdi:Invoice invoiceTotal=\"450.24\"> </cfdi:Invoice>" ; "/Invoice/@invoiceTotal"; ""; 8+2)
Example result: 450.24
Query attributes:
MBS( "XML.Query";
"<a><b Guid=\"123\">Entry1</b><b Guid=\"456\">Entry2</b></a>";
"/a/b/@Guid"; ""; 2 )
Example result:
123
456
Created 18th August 2014, last changed 16th April 2020
Feedback: Report problem or ask question.