import org.dom4j.DocumentHelper; //导入方法依赖的package包/类
public void loadCollection()
{
if ( metaObjects == null ) {
metaObjects = new HashMap>();
Map uris = new HashMap();
uris.put( "ddsws", "http://www.dlese.org/Metadata/ddsws" );
uris.put( "groups", "http://www.dlese.org/Metadata/groups/" );
uris.put( "adn", "http://adn.dlese.org" );
uris.put( "annotation", "http://www.dlese.org/Metadata/annotation" );
XPath xpath = DocumentHelper.createXPath( "//ddsws:results/ddsws:record" );
xpath.setNamespaceURIs( uris );
List recordNodes = xpath.selectNodes(this.document);
for ( Iterator iter = recordNodes.iterator(); iter.hasNext(); )
{
Element element = (Element) iter.next();
XPath meta = DocumentHelper.createXPath( "./ddsws:metadata" );
XPath resURL = DocumentHelper.createXPath( "./ddsws:metadata/adn:itemRecord/adn:technical/adn:online/adn:primaryURL" );
XPath resId = DocumentHelper.createXPath("./ddsws:head/ddsws:additionalMetadata/ddsws:adn/ddsws:annotatedBy/ddsws:record/ddsws:head/ddsws:id");//adn:adn/adn:annotatedBy/adn:record/adn:head/adn:id");
meta.setNamespaceURIs( uris );
resId.setNamespaceURIs( uris );
resURL.setNamespaceURIs( uris );
Node metadata = meta.selectSingleNode(element);
Element resourceId = (Element)resId.selectSingleNode(element);
Element resourceURL = (Element)resURL.selectSingleNode(element);
if ( resourceId != null && resourceURL != null && metadata != null )
{
// add the resId as the hash key
metaObjects.put(
resourceId.getTextTrim(),
new ArrayList(Arrays.asList( resourceURL.getTextTrim(), metadata.asXML() ))
);
}
}
}
}