用JAVA获取XML信息 第一步

看了《JAVA与XML》终于有了点收获,马上编写一段代码练练手。
用DOM简单的获取XML信息。

先随便写一个简单的XML文件。名为tryxml.xml


<?xml version="1.0" encoding="UTF-8"?>
<EMP_INFO>
<EMP id="001">
<EMPNAME>啊三</EMPNAME>
<EMPDEPT>人事部</EMPDEPT>
<EMPAGE>32</EMPAGE>
</EMP>
</EMP_INFO>





建立个JAVA文件 名为TryXML

import java.io.*;
import org.xml.sax.*;
import org.w3c.dom.*;
import org.apache.xerces.parsers.DOMParser;

public class TryXML{

  public void ParseDoc(String uri){
   try{
     DOMParser MyParser = new DOMParser(); //建立个工人
     MyParser.parse(uri); //解析文件
     Document XMLDoc = MyParser.getDocument(); //打开一个文件         
     printXML(XMLDoc); //输出XML信息
   }
    
   catch (IOException e){
     System.out.println("Error IOException!!!"); 
     }
   catch (SAXException e){
     System.out.println("Error SAXException!!!");
     }
 }


  public static void main(String[] args){
   String uri = args[0];

   TryXML TheXML = new TryXML();
   TheXML.ParseDoc(uri);
  }
 

 public void printXML(Node node){
   if (node.getNodeType() == Node.DOCUMENT_NODE){ //节点类型为文件节点时。
     System.out.println("XML开始");
     NodeList nodelist = node.getChildNodes();  //获取子节点。

     if (nodelist != null){
       for (int i = 0; i < nodelist.getLength(); i++)
        printXML(nodelist.item(i));  //输出每个子节点
      }
    }
    else if (node.getNodeType() == Node.ELEMENT_NODE){ //当节点类型为元素时。
     String name = node.getNodeName(); //获取节点名。
     System.out.println("元素: [" + name + "]");
     NamedNodeMap attList = node.getAttributes(); //获取属性
    
    for (int i = 0; i < attList.getLength(); i++){ //属性为空时不会进入。
      Node currentNode = attList.item(i);
      System.out.println("属性: [" +
      currentNode.getNodeName() + "]"+"= [" +
      currentNode.getNodeValue() + "]");
     }

     NodeList childrenList = node.getChildNodes();//获取子节点。
 
   if (childrenList != null){
       for (int ii = 0; ii < childrenList.getLength(); ii++)
         printXML(childrenList.item(ii));
     }
   
 
     System.out.println(" [" + name + "] 结束");
     }
    
    else if (node.getNodeType() == Node.TEXT_NODE){ //获取字符信息
     if(node.getNodeValue()!="/0")
       System.out.println("元素内容:"+ node.getNodeValue()+"..");
     }
  }
}



好了到控制台下 编译一下。然后打 java TryXML tryxml.xml 看看。哈。成功吧?




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答你的问题。 首先,IOC(Inversion of Control)是Spring框架中的一个重要功能,它将对象的创建和依赖关系的管理从应用程序代码中解耦出来。IOC容器负责创建和管理对象,将它们注入到应用程序中。这使得应用程序更加灵活、可扩展和易于维护。 现在回答你的问题: 1. 使用XML的方式的Spring IOC来完成第一步中实例化knight: 首先,我们需要在XML配置文件中定义一个bean,用于实例化Knight对象。这个bean包含Knight类的完全限定名(或者是别名),以及任何需要传递给构造函数的参数。例如: ```xml <bean id="knight" class="com.example.Knight"> <constructor-arg value="Lancelot"/> </bean> ``` 这个配置将会实例化一个名为Lancelot的Knight对象。我们可以通过IOC容器获取这个对象: ```java ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Knight knight = (Knight) context.getBean("knight"); ``` 2. 使用Annotation的Spring IOC来完成第一步中实例化knight: 使用注解的方式,我们可以在Knight类的构造函数上添加@Service注解,告诉IOC容器这个类是一个服务类。例如: ```java @Service public class Knight { private String name; public Knight(@Value("Lancelot") String name) { this.name = name; } } ``` 然后,在配置类上添加@ComponentScan注解,告诉IOC容器在哪里扫描服务类。例如: ```java @Configuration @ComponentScan(basePackages = "com.example") public class AppConfig { // ... } ``` 最后,我们可以通过IOC容器获取Knight对象: ```java ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); Knight knight = context.getBean(Knight.class); ``` 3. 使用Java配置文件的Spring IOC来完成第一步中实例化knight: 使用Java配置文件的方式,我们需要创建一个Java类来配置IOC容器。例如: ```java @Configuration public class AppConfig { @Bean public Knight knight() { return new Knight("Lancelot"); } } ``` 这个配置将会实例化一个名为Lancelot的Knight对象。我们可以通过IOC容器获取这个对象: ```java ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); Knight knight = context.getBean(Knight.class); ``` 以上就是使用XML、Annotation和Java配置文件三种方式实例化Knight对象的步骤。希望能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值