From 443993fb881a8fb05684207f04319f1e58246aec Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 6 Jul 2021 12:00:43 +0200 Subject: [PATCH] Retrieve directly the XML value of a node. --- org.argeo.jcr/src/org/argeo/jcr/JcrxApi.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/org.argeo.jcr/src/org/argeo/jcr/JcrxApi.java b/org.argeo.jcr/src/org/argeo/jcr/JcrxApi.java index 8f1ee9fa9..666b2593e 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/JcrxApi.java +++ b/org.argeo.jcr/src/org/argeo/jcr/JcrxApi.java @@ -30,22 +30,33 @@ public class JcrxApi { * XML */ /** - * Set as a subnode which will be exported as an XML element. + * Get the XML text of this child node. */ public static String getXmlValue(Node node, String name) { try { if (!node.hasNode(name)) return null; Node child = node.getNode(name); - if (!child.hasNode(Jcr.JCR_XMLTEXT)) + return getXmlValue(child); + } catch (RepositoryException e) { + throw new IllegalStateException("Cannot get " + name + " as XML text", e); + } + } + + /** + * Get the XML text of this node. + */ + public static String getXmlValue(Node node) { + try { + if (!node.hasNode(Jcr.JCR_XMLTEXT)) return null; - Node xmlText = child.getNode(Jcr.JCR_XMLTEXT); + Node xmlText = node.getNode(Jcr.JCR_XMLTEXT); if (!xmlText.hasProperty(Jcr.JCR_XMLCHARACTERS)) throw new IllegalArgumentException( "Node " + xmlText + " has no " + Jcr.JCR_XMLCHARACTERS + " property"); return xmlText.getProperty(Jcr.JCR_XMLCHARACTERS).getString(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get " + name + " as XML text", e); + throw new IllegalStateException("Cannot get " + node + " as XML text", e); } } -- 2.30.2