| Sign In/My Account | View Cart |
| Article: |
Parsing an XML Document with XPath | |
| Subject: | Parsing a Namespace node with JDK 5.0 | |
| Date: | 2005-01-14 08:23:02 | |
| From: | dvohra09 | |
To parse a namespace node with the JDK 5.0 javax.xml.xpath package, set the NamespaceContext on the XPath object.
|
||
Showing messages 1 through 6 of 6.
NamespaceContext interface with the provision to set more than one prefixes for a uri. import javax.xml.namespace.NamespaceContext;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.ArrayList;
import java.util.List;
public class MyNamespaceContext implements NamespaceContext {
private Map map;
public MyNamespaceContext() {
map = new HashMap();
}
public void setNamespace(String prefix, String namespaceURI) {
map.put(prefix, namespaceURI);
}
public String getNamespaceURI(String prefix) {
return (String) map.get(prefix);
}
public String getPrefix(String namespaceURI) {
Set keys = map.keySet();
for (Iterator iterator = keys.iterator(); iterator.hasNext();)
{
String prefix = (String) iterator.next();
String uri = (String) map.get(prefix);
if (uri.equals(namespaceURI)) return prefix;
}
return null;
}
public Iterator getPrefixes(String namespaceURI) {
List prefixes = new ArrayList();
Set keys = map.keySet();
for (Iterator iterator = keys.iterator(); iterator.hasNext();)
{
String prefix = (String) iterator.next();
String uri = (String) map.get(prefix);
if (uri.equals(namespaceURI)) prefixes.add(prefix);
}
return prefixes.iterator();
}
}
public class NamespaceContextImpl implements NamespaceContext{
public String uri;
public String prefix;
public NamespaceContextImpl(){}
public NamespaceContextImpl(String prefix, String uri){
this.uri=uri;
this.prefix=prefix;
}
public String getNamespaceURI(String prefix){
return uri;
}
public void setNamespaceURI(String uri){
this.uri=uri;
}
public String getPrefix(String uri){
return prefix;
}
public void setPrefix(String prefix){
this.prefix=prefix;
}
public Iterator getPrefixes(String uri){return null;}
}
XPath xpath;
NamespaceContext namepsaceContext=new NamespaceContextImpl(prefix, uri);
xpath.setNamespaceContext(namespaceContext);
public class NamespaceContextImpl implements NamespaceContext{
public String uri;
public String prefix;
public NamespaceContextImpl(){}
public NamespaceContextImpl(String prefix, String uri){
this.uri=uri;
this.prefix=prefix;
}
public String getNamespaceURI(String prefix){
return uri;
}
public void setNamespaceURI(String uri){
this.uri=uri;
}
public String getPrefix(String uri){
return prefix;
}
public void setPrefix(String prefix){
this.prefix=prefix;
}
public Iterator getPrefixes(String uri){return null;}
}