| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Java XPath」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
 
http://www.atmarkit.co.jp/fxml/ddd/ddd001/ddd001-namespaces1.html  
 
http://www.atmarkit.co.jp/fxml/ddd/ddd001/ddd001-namespaces1.html  
XMLを返すurlからXMLデータを取得、解析し、Nodeのリストを作成する。
+
[[XML]]を返すurlから[[XML]]データを取得、解析し、Nodeのリストを作成する。
  URLConnection conn = (new URL(url)).openConnection();
+
  U[[R]]LConnection conn = (new U[[R]]L(url)).openConnection();
 
  conn.connect();
 
  conn.connect();
 
   
 
   
  InputSource in = new InputSource(new InputStreamReader(conn.getInputStream()));
+
  InputSource in = new InputSource(new InputStream[[R]]eader(conn.getInputStream()));
  XPathFactory xfactory = XPathFactory.newInstance();
+
  [[XPath]]Factory xfactory = [[XPath]]Factory.newInstance();
  XPath xpath = xfactory.newXPath();
+
  [[XPath]] xpath = xfactory.new[[XPath]]();
 
   
 
   
 
  NodeList result = (NodeList)xpath.evaluate("//*[local-name()='Parameter']/text()", in, XPathConstants.NODESET);
 
  NodeList result = (NodeList)xpath.evaluate("//*[local-name()='Parameter']/text()", in, XPathConstants.NODESET);
25行目: 25行目:
 
  import java.util.Set;
 
  import java.util.Set;
 
   
 
   
  import javax.xml.XMLConstants;
+
  import javax.xml.[[XML]]Constants;
 
  import javax.xml.namespace.NamespaceContext;
 
  import javax.xml.namespace.NamespaceContext;
 
   
 
   
33行目: 33行目:
 
      
 
      
 
     public NameSpaceContextImpl() {
 
     public NameSpaceContextImpl() {
         setNamespaceURI(XMLConstants.DEFAULT_NS_PREFIX, XMLConstants.NULL_NS_URI);
+
         setNamespaceURI([[XML]]Constants.DEFAULT_NS_PREFIX, [[XML]]Constants.NULL_NS_URI);
         setNamespaceURI(XMLConstants.XML_NS_PREFIX, XMLConstants.XML_NS_URI);
+
         setNamespaceURI([[XML]]Constants.[[XML]]_NS_PREFIX, [[XML]]Constants.[[XML]]_NS_URI);
         setNamespaceURI(XMLConstants.XMLNS_ATTRIBUTE, XMLConstants.XMLNS_ATTRIBUTE_NS_URI);
+
         setNamespaceURI([[XML]]Constants.[[XML]]NS_ATTRIBUTE, [[XML]]Constants.[[XML]]NS_ATTRIBUTE_NS_URI);
 
     }
 
     }
 
      
 
      
     public void setNamespaceURI(String prefix, String uri) {
+
     public void setNamespaceU[[R]]I(String prefix, String uri) {
 
         map.put(prefix, uri);
 
         map.put(prefix, uri);
 
     }
 
     }
 
      
 
      
     public String getNamespaceURI(String prefix) {
+
     public String getNamespaceU[[R]]I(String prefix) {
 
         return map.get(prefix);
 
         return map.get(prefix);
 
     }
 
     }
 
   
 
   
     public String getPrefix(String namespaceURI) {
+
     public String getPrefix(String namespaceU[[R]]I) {
         if (namespaceURI == null) {
+
         if (namespaceU[[R]]I == null) {
 
             throw new IllegalArgumentException();
 
             throw new IllegalArgumentException();
 
         }
 
         }
53行目: 53行目:
 
         Set<Map.Entry<String, String>>set = map.entrySet();
 
         Set<Map.Entry<String, String>>set = map.entrySet();
 
         for (Map.Entry<String, String>item : set) {
 
         for (Map.Entry<String, String>item : set) {
             if (namespaceURI.equals(item.getValue())) {
+
             if (namespaceU[[R]]I.equals(item.getValue())) {
 
                 return item.getKey();
 
                 return item.getKey();
 
             }
 
             }
 
         }
 
         }
         return XMLConstants.NULL_NS_URI;
+
         return [[XML]]Constants.NULL_NS_URI;
 
     }
 
     }
 
   
 
   
     public Iterator getPrefixes(String namespaceURI) {
+
     public Iterator getPrefixes(String namespaceU[[R]]I) {
 
          
 
          
 
         Set<String> prefixes = new HashSet<String>();
 
         Set<String> prefixes = new HashSet<String>();
66行目: 66行目:
 
         Set<Map.Entry<String, String>>set = map.entrySet();
 
         Set<Map.Entry<String, String>>set = map.entrySet();
 
         for (Map.Entry<String, String>item : set) {
 
         for (Map.Entry<String, String>item : set) {
             if (namespaceURI.equals(item.getValue())) {
+
             if (namespaceU[[R]]I.equals(item.getValue())) {
 
                 prefixes.add(item.getKey());
 
                 prefixes.add(item.getKey());
 
             }
 
             }

2020年2月16日 (日) 04:27時点における最新版

http://www.atmarkit.co.jp/fxml/ddd/ddd001/ddd001-namespaces1.html XMLを返すurlからXMLデータを取得、解析し、Nodeのリストを作成する。

URLConnection conn = (new URL(url)).openConnection();
conn.connect();

InputSource in = new InputSource(new InputStreamReader(conn.getInputStream()));
XPathFactory xfactory = XPathFactory.newInstance();
XPath xpath = xfactory.newXPath();

NodeList result = (NodeList)xpath.evaluate("//*[local-name()='Parameter']/text()", in, XPathConstants.NODESET);

for (int i=0; i<result.getLength(); i++) {
    System.out.println(result.item(i).toString());
}


package generate;

import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import javax.xml.XMLConstants;
import javax.xml.namespace.NamespaceContext;

public class NameSpaceContextImpl implements NamespaceContext {

    Map<String, String> map = new HashMap<String, String>();
    
    public NameSpaceContextImpl() {
        setNamespaceURI(XMLConstants.DEFAULT_NS_PREFIX, XMLConstants.NULL_NS_URI);
        setNamespaceURI(XMLConstants.XML_NS_PREFIX, XMLConstants.XML_NS_URI);
        setNamespaceURI(XMLConstants.XMLNS_ATTRIBUTE, XMLConstants.XMLNS_ATTRIBUTE_NS_URI);
    }
    
    public void setNamespaceURI(String prefix, String uri) {
        map.put(prefix, uri);
    }
    
    public String getNamespaceURI(String prefix) {
        return map.get(prefix);
    }

    public String getPrefix(String namespaceURI) {
        if (namespaceURI == null) {
            throw new IllegalArgumentException();
        }
        
        Set<Map.Entry<String, String>>set = map.entrySet();
        for (Map.Entry<String, String>item : set) {
            if (namespaceURI.equals(item.getValue())) {
                return item.getKey();
            }
        }
        return XMLConstants.NULL_NS_URI;
    }

    public Iterator getPrefixes(String namespaceURI) {
        
        Set<String> prefixes = new HashSet<String>();
        
        Set<Map.Entry<String, String>>set = map.entrySet();
        for (Map.Entry<String, String>item : set) {
            if (namespaceURI.equals(item.getValue())) {
                prefixes.add(item.getKey());
            }
        }
        
        return Collections.unmodifiableCollection(prefixes).iterator();
    }

}