From e7a1807ba0a855a47acac6bb591c786fba4cd5d0 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 22 Feb 2024 10:16:50 +0100 Subject: [PATCH] Fix search in mounted DOM content provider --- .../src/org/argeo/cms/acr/xml/DomContentProvider.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/org.argeo.cms/src/org/argeo/cms/acr/xml/DomContentProvider.java b/org.argeo.cms/src/org/argeo/cms/acr/xml/DomContentProvider.java index 845a6ab4c..20f7eb153 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/xml/DomContentProvider.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/xml/DomContentProvider.java @@ -75,9 +75,13 @@ public class DomContentProvider implements ContentProvider, NamespaceContext { protected NodeList findContent(String relativePath) { if (relativePath.startsWith("/")) throw new IllegalArgumentException("Relative path cannot start with /"); - String xPathExpression = '/' + relativePath; - if (Content.ROOT_PATH.equals(mountPath)) // repository root - xPathExpression = "/" + CrName.root.get() + xPathExpression; + String xPathExpression; + if (Content.ROOT_PATH.equals(mountPath)) {// repository root + xPathExpression = "/" + CrName.root.get() + '/' + relativePath; + } else { + String documentNodeName = document.getDocumentElement().getNodeName(); + xPathExpression = '/' + documentNodeName + '/' + relativePath; + } try { NodeList nodes = (NodeList) xPath.get().evaluate(xPathExpression, document, XPathConstants.NODESET); return nodes; -- 2.30.2