From: Mathieu Baudier Date: Thu, 22 Feb 2024 09:16:50 +0000 (+0100) Subject: Fix search in mounted DOM content provider X-Git-Tag: v2.3.28~40 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=e7a1807ba0a855a47acac6bb591c786fba4cd5d0 Fix search in mounted DOM content provider --- 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;