labwc/include/common/xml.h
tokyo4j 503af10505 rcxml: convert dotted properties into nested nodes before processing
For example, the following node:

  <keybind name.action="ShowMenu" menu.action="root-menu"
            x.position.action="1" y.position.action="2" />

is converted to:

 <keybind>
   <action>
     <name>ShowMenu</name>
     <menu>root-menu</menu>
     <position>
       <x>1</x>
       <y>2</y>
     </position>
   </action>
 </keybind>

...before processing the entire xml tree. This is a preparation to prevent
breaking changes when we refactor rcxml.c to use recursion instead of
encoding nodes into dotted strings.
2025-07-30 20:36:27 +01:00

29 lines
642 B
C

/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_XML_H
#define LABWC_XML_H
#include <libxml/tree.h>
/*
* Converts dotted attributes into nested nodes.
* For example, the following node:
*
* <keybind name.action="ShowMenu" menu.action="root-menu"
* x.position.action="1" y.position.action="2" />
*
* is converted to:
*
* <keybind>
* <action>
* <name>ShowMenu</name>
* <menu>root-menu</menu>
* <position>
* <x>1</x>
* <y>2</y>
* </position>
* </action>
* </keybind>
*/
void lab_xml_expand_dotted_attributes(xmlNode *root);
#endif /* LABWC_XML_H */