Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
XML.SetPathXML
Sets path value with XML sub tree.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
XML | 8.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example |
---|---|---|
XML | The XML to process. Can be XML as text or the reference returned by XML.Parse function, so you can make several times changes to the XML without parsing it each time. |
"<test>Hello</test>" |
Path | The path to the node or attribute to query. | "name" |
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 4 to format returned XML. Add 32 to return result as XML. |
0 |
NewXML | The new xml for node or attribute. 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. |
"<name>Christian</name>" |
Result
Returns XML, OK or error.
Description
Sets path value with XML sub tree.If needed, new nodes / attributes are added.
This function uses a path notation like the JSON functions in FileMaker to describe paths. Please point with path to new node.
You can use name of a node followed by optional index in square brackets. On the end you can use # followed by a name of an attribute to select only the attribute. Empty brackets or too big index allow you to append new node.
Delimiter between items can be dot like FileMaker or newline.
If you pass in a XML reference number and you do not pass Flag value 32 for returning as XML, we just modify the XML reference in memory. This avoids performance hit for outputting and parsing xml for each change.
Examples
Insert new node:
MBS("XML.SetPathXML"; "<export><person></person></export>"; "export¶person¶name"; 0; "<name>Test</name>")
Example result:
<?xml version="1.0" encoding="UTF-8"?>
<export><person><name>Test</name></person></export>
Insert second node with index:
MBS("XML.SetPathXML"; "<export><person><name>First</name></person></export>"; "export¶person¶name[1]"; 0; "<name>Test</name>")
Example result:
<?xml version="1.0" encoding="UTF-8"?>
<export><person><name>First</name><name>Test</name></person></export>
Append node:
MBS("XML.SetPathXML"; "<export><person><name>First</name></person></export>"; "export¶person¶name[]"; 0; "<name>Test</name>")
Set XML part with namespaces:
MBS("XML.SetPathXML"; "<r:export ns:r=\"http://mbsplugins.eu/testNamespace\"><r:person></r:person></r:export>"; "r:export¶r:person¶r:name"; 0; "<name>Test</name>")
Example result:
<?xml version="1.0" encoding="UTF-8"?>
<r:export ns:r="http://mbsplugins.eu/testNamespace"><r:person><name>Test</name></r:person></r:export>
See also
Release notes
- Version 8.1
- Added XML.SetPathXML function.
- For XML.SetPathValue and XML.SetPathXML you can now specify [] (Without index) to add new node on the end.
Example Databases
Blog Entries
- FileMaker records to XML or JSON
- MBS FileMaker Plugin v8.1 with 5100 Functions In One Plugin
- MBS FileMaker Plugin 8.1
- MBS FileMaker Plugin, version 8.1pr1
This function checks for a license.
Created 2nd February 2018, last changed 30th June 2022