Java xml(update20201118)

本文介绍了XML的基本概念及其与HTML的区别,并通过实例展示了如何使用Java读取和创建XML文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML 简介

XML 被设计用来传输和存储数据。
HTML 被设计用来显示数据。

什么是 XML?
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准

XML 与 HTML 的主要差异
XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。

XML 的用途

XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。

一个 XML 文档实例
XML 使用简单的具有自我描述性的语法:
<?xml version="1.0" encoding="ISO-8859-1"?>
    <note>
        <to>George</to>
        <from>John</from>
        <heading>Reminder</heading>
        <body>Don't forget the meeting!</body>
    </note>
第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
下一行描述文档的根元素(像在说:“本文档是一个便签”):
<note>
接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body):
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
最后一行定义根元素的结尾:
</note>
从本例可以设想,该 XML 文档包含了 John 给 George 的一张便签。

使用java读取XML示例:

languages.xml

<?xml version="1.0" encoding="UTF-8"?>
<Languages cat="it">
    <lan id="1">
        <name>Java</name>
        <ide>Eclipse</ide>
    </lan>
    <lan id="2">
        <name>Swift</name>
        <ide>Xcode</ide>
    </lan>
    <lan id="3">
        <name>C#</name>
        <ide>Visual Studio</ide>
    </lan>
</Languages>

Java代码:

DocumentBuilderFactory factory  = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("languages.xml"));
Element root = document.getDocumentElement();
System.out.println("cat="+root.getAttribute("cat"));
NodeList list = root.getElementsByTagName("lan");
for (int i = 0; i < list.getLength(); i++) {
      Element lan = (Element) list.item(i);
      System.out.println("---------------");
      System.out.println("id="+lan.getAttribute("id"));
      NodeList clist = lan.getChildNodes();
      for (int j = 0; j < clist.getLength(); j++) {
         Node c = clist.item(j);
         if (c instanceof Element) {
            System.out.println(c.getNodeName()+"="+c.getTextContent());
         }
      }
}

 

使用java创建xml示例:

创建newxml.xml

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
Element root = document.createElement("Languages");
root.setAttribute("cat", "it");

Element lan1 = document.createElement("lan");
lan1.setAttribute("id", "1");
Element name1 = document.createElement("name");
name1.setTextContent("Java");
Element ide1 = document.createElement("ide");
ide1.setTextContent("Eclipse");
lan1.appendChild(name1);
lan1.appendChild(ide1);

Element lan2 = document.createElement("lan");
lan2.setAttribute("id", "2");
Element name2 = document.createElement("name");
name2.setTextContent("Swift");
Element ide2 = document.createElement("ide");
ide2.setTextContent("XCode");
lan2.appendChild(name2);
lan2.appendChild(ide2);

Element lan3 = document.createElement("lan");
lan3.setAttribute("id", "3");
Element name3 = document.createElement("name");
name3.setTextContent("C#");
Element ide3 = document.createElement("ide");
ide3.setTextContent("Visual Studio");
lan3.appendChild(name3);
lan3.appendChild(ide3);

root.appendChild(lan1);
root.appendChild(lan2);
root.appendChild(lan3);
document.appendChild(root);

//-------------

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty("encoding", "UTF-8");

StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(document), new StreamResult(writer));
System.out.println(writer.toString());

transformer.transform(new DOMSource(document), new StreamResult(new File("newxml.xml")));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值