mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Merged V2.1 to HEAD
6466: Xml metadata. Support for pulling collections of values from XML 6470: Fix for AWC-1321 - Using zero as items per page gives error for Alfresco repos in OpenSearch 6471: Fix for AWC-1496 - OpenSearch dashlet can get in a state where search queries are not executed 6472: Fix for AWC-1495. Searching additional attributes now working correctly for folders. 6473: Fix for AR-1251 (Version error when saving new content via CIFS) 6474: Updated bundles and installers - added missing files back into Linux bundle 6475: LDAP and chainging authentication Resolved conflicted state of 'root\projects\repository\source\java\org\alfresco\repo\security\authentication\AuthenticationUtil.java' 6477: XForms WCM-696. 6478: Fix for WCM-567 (IndexOutOfBoundsException when stepping through wizard rapidly) 6480: Fix to issue when removing locks on directories. 6481: Updated installer and config wizard to fix download option and config behaviour when called from installer. 6482: Fix for WCM-1229 (properties sheet does not refresh) 6483: Fix for AR-1511 6484: Fix for AR-1351 6485: Missed a unit test update git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6737 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -57,6 +57,8 @@ import org.alfresco.util.PropertyCheck;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
/**
|
||||
* An extracter that pulls values from XML documents using configurable XPath
|
||||
@@ -248,7 +250,30 @@ public class XPathMetadataExtracter extends AbstractMappingMetadataExtracter imp
|
||||
String documentProperty = element.getKey();
|
||||
XPathExpression xpathExpression = element.getValue();
|
||||
// Execute it
|
||||
String value = (String) xpathExpression.evaluate(document, XPathConstants.STRING);
|
||||
NodeList nodeList = (NodeList) xpathExpression.evaluate(document, XPathConstants.NODESET);
|
||||
// Convert the value
|
||||
Serializable value = null;
|
||||
int nodeCount = nodeList.getLength();
|
||||
if (nodeCount == 0)
|
||||
{
|
||||
// No result
|
||||
}
|
||||
else if (nodeCount == 1)
|
||||
{
|
||||
Node node = nodeList.item(0);
|
||||
// Get the string value
|
||||
value = node.getTextContent();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Make a collection of the values
|
||||
ArrayList<String> stringValues = new ArrayList<String>(5);
|
||||
for (int i = 0; i < nodeCount; i++)
|
||||
{
|
||||
stringValues.add(nodeList.item(i).getTextContent());
|
||||
}
|
||||
value = stringValues;
|
||||
}
|
||||
// Put the value
|
||||
rawProperties.put(documentProperty, value);
|
||||
}
|
||||
@@ -305,7 +330,7 @@ public class XPathMetadataExtracter extends AbstractMappingMetadataExtracter imp
|
||||
xpathExpressionMapping.put(documentProperty, xpathExpression);
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Added mapping from " + documentProperty + " to " + xpathExpression);
|
||||
logger.debug("Added mapping from " + documentProperty + " to " + xpathStr);
|
||||
}
|
||||
}
|
||||
// Done
|
||||
|
Reference in New Issue
Block a user