XML文件解析

来源:互联网 发布:数据备份与恢复策略 编辑:程序博客网 时间:2024/05/22 03:02

private MailUtility() {
 
  mailXml = XmlResource.getInstance("mail_ja.xml");
 
  final Document doc = mailXml.getDocument();
  
  final Element mailDefaultPropertiesElement
      = (Element)doc.getElementsByTagName("mail-default-properties").item(0);
  
  final NodeList mailDefaultProperties
      = mailDefaultPropertiesElement.getElementsByTagName("property");
      
  properties = new Properties();
  for(int i = 0; i < mailDefaultProperties.getLength(); i++){
   final Element propertyElement = (Element)mailDefaultProperties.item(i);
   properties.setProperty(propertyElement.getElementsByTagName("name").item(0).getFirstChild().getNodeValue()
        , propertyElement.getElementsByTagName("value").item(0).getFirstChild().getNodeValue());
  }
 
  isDebug = Boolean.valueOf(
     mailDefaultPropertiesElement.getElementsByTagName("default-debug-mode").
             item(0).getFirstChild().getNodeValue()).
             booleanValue();
 
  defaultSubject = mailDefaultPropertiesElement.getElementsByTagName("default-subject").
              item(0).getFirstChild().getNodeValue();
 
  defaultCharset = mailDefaultPropertiesElement.getElementsByTagName("default-charset").
              item(0).getFirstChild().getNodeValue();
 
  userName = getProperties().getProperty(MAIL_USER);
 
  password = mailDefaultPropertiesElement.getElementsByTagName("default-password").
              item(0).getFirstChild().getNodeValue();

 } 

 

/**
  * 指定されたリソース名のXMLファイルでこのクラスのオブジェクトを生成し、取得する。
  * @param name XMLファイルのリソース名
  * @return 生成されたXmlResource
  */
 public static XmlResource getInstance(String name){
 
  final URL resourceUrl = ClassLoader.getSystemResource(name);
 
  if(resourceUrl == null) throw new MissingResourceException("Resource /"" + name + "/" is not found." , name, "");
 
  final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
  documentBuilderFactory.setValidating(true);
  documentBuilderFactory.setNamespaceAware(true);
 
  try{
  
   final DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
  
   return new XmlResource(documentBuilder.parse(resourceUrl.toExternalForm()));
  
  }catch(ParserConfigurationException e){
   throw new RuntimeException(e.toString());
  }catch(IOException e){
   throw new RuntimeException(e.toString());
  }catch(SAXException e){
   throw new RuntimeException(e.toString());
  }
 
 }