From 81e3c92461f2b977f93ad4ccfc0940682ad5b0bd Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Mon, 6 Apr 2026 08:15:45 +1000 Subject: [PATCH] Use quoteattr for attribute serialization For Python 3.14 compat, which failed with: ``` File "/usr/lib/python3.14/site-packages/roboticstoolbox/tools/xacro/xmlutils.py", line 124, in fixed_writexml TypeError: _write_data() missing 1 required positional argument: 'attr' ``` --- roboticstoolbox/tools/xacro/xmlutils.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/roboticstoolbox/tools/xacro/xmlutils.py b/roboticstoolbox/tools/xacro/xmlutils.py index 6446e6856..34be9850a 100644 --- a/roboticstoolbox/tools/xacro/xmlutils.py +++ b/roboticstoolbox/tools/xacro/xmlutils.py @@ -31,6 +31,7 @@ # Maintainer: Morgan Quigley import xml.dom.minidom +from xml.sax.saxutils import quoteattr def first_child_element(elt): @@ -120,9 +121,7 @@ def fixed_writexml(self, writer, indent="", addindent="", newl=""): # pragma: a_names = sorted(attrs.keys()) for a_name in a_names: - writer.write(" %s=\"" % a_name) - xml.dom.minidom._write_data(writer, attrs[a_name].value) - writer.write("\"") + writer.write(" %s=%s" % (a_name, quoteattr(attrs[a_name].value))) if self.childNodes: if len(self.childNodes) == 1 \ and self.childNodes[0].nodeType == xml.dom.minidom.Node.TEXT_NODE: