pan*_*eis 3 xml jaxb unmarshalling xml-parsing domparser
任何人都可以在JAXB中解释UnMarshaller和Parser之间的区别.我读过像UnMarshaller那样用来从XML文档中检索值.Parser也做了同样的事情.有人请解释一下差异.
例如:考虑下面的示例zoo.xml
<zoo>
<zooName>Vandalur Zoo</zooName>
<zooId>12321</zooId>
<animals>
<animal>
<animalName>Lion</animalName>
<animalType>Wild</animalType>
</animal>
Run Code Online (Sandbox Code Playgroud)
使用UnMarshaller,
JAXBContext jaxbContext = JAXBContext
.newInstance("com.javapapers.xml.jaxb");
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
JAXBElement<?> zoo = (JAXBElement<?>) unmarshaller
.unmarshal(new FileInputStream("zoo.xml"));
ZooInfo zooInfo = (ZooInfo) zoo.getValue();
Run Code Online (Sandbox Code Playgroud)
使用解析器:
File fXmlFile = new File("zoo.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
Run Code Online (Sandbox Code Playgroud)
您的示例都涉及解析XML作为第一步.他们接下来会发生什么不同."unmarshaller"将解析器的输出转换为Java对象,其类定义与XML的结构相匹配.第二个示例将解析器的输出转换为XML的直接树表示.
术语"解析器"在XML世界中被滥用.它经常用于描述在解析数据后处理数据的应用程序,而不仅仅是解析器组件本身.在您的情况下,您将(解析器加unmarshaller)与(解析器加树构建器)进行比较.
| 归档时间: |
|
| 查看次数: |
2218 次 |
| 最近记录: |