【根元素</……>是结束的符号】
【数据库,Java文件,XML文档应当全部一致】
XML文档内容由一系列标签元素组成
<元素名 属性名=“属性值”>元素内容</元素名>
空元素的方法:
(这里是一个空格)
- 语法:
属性值用双引号包裹
一个元素可以有多个属性
属性值中不能直接包含<、“、&(不建议:‘、>)【最好都不要写】
例如:
<?xml version="1.0" encoding="UTF-8"?>张三
18
李四
22
<student id="s1"name="张三"age=“18”/>
<student id="s2"name="李四"age=“22”/>
- XML编写注意事项:
所有XML元素都必须有结束标签(</……>)
XML标签对大小写敏感
XML必须正确的嵌套
同级标签以缩进对齐
元素名称可以包含字母、数字或其他的字符
元素名称不能以数字或者标点符号开始(<5name>是错误的;是正确的)
元素名称中不能含空格(是错误的;是正确的的)
- XML编写命名习惯:
编写的元素名称要有描述性。
名字尽量简短些,可以用下划线“_”,但是不要用中横线“-”、点“.”或者冒号“:”(<book_title>)。
数据库怎么命名,XML文件就怎么命名,要保持一致。
- XML中的转义符列表:
| 符号 | 转义符(预定义实体) |
| — | — |
| < | & lt; |
| > | & gt; |
| " | & quot; |
| ’ | & apos; |
| & | & amp; |
=======================================================================
案例:查
books.xml代码:
<?xml version="1.0" encoding="UTF-8"?><book 类型=“children”>
J K. Rowling
2005
29.99
<book 类型=“cooking”>
Giada De Laurentiis
2005
30.00
<book 类型=“web”>
Erik T. Ray
2003
39.95
<book 类型=“web”>
James McGovern
Per Bothner
Kurt Cagle
James Linn
Vaidyanathan Nagarajan
2003
49.99
java代码:
package xmlDomDome;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DomDemo {
public static void main(String[] args) {
// 1.创建一个解析工厂
DocumentBuilderFactory df = DocumentBuilderFactory.newInstance();
// 2.由工厂创建具体的解析器
try {
// 得到一个解析器
DocumentBuilder db = df.newDocumentBuilder();
// 获取要解析的文件
Document document = db.parse(new File(“conf/books.xml”));
// 获取根节点
NodeList list = document.getElementsByTagName(“bookstore”);
Element e = (Element) list.item(0);
NodeList list1 = e.getElementsByTagName(“book”);
// 3.开始解析
System.out.println(“book节点的数量:” + list1.getLength());
System.out.println(“--------------------------”);
for (int i = 0; i < list1.getLength(); i++) {
Element e1 = (Element) list1.item(i);
// 以下是获取属性节点
NamedNodeMap map = e1.getAttributes();
for (int j = 0; j < map.getLength(); j++) {
Node n1 = map.item(j);
System.out.println(n1.getNodeName() + “:” + n1.getNodeValue());
}
// 获取子节点
NodeList titleList = e1.getElementsByTagName(“title”);
Element titleElement = (Element) titleList.item(0);
NamedNodeMap titleMap = titleElement.getAttributes();
for (int j = 0; j < titleMap.getLength(); j++) {
Node titleNode = titleMap.item(j);
System.out.println(titleNode.getNodeName() + “:” + titleNode.getNodeValue() + " title:"
- titleElement.getFirstChild().getNodeValue());
}
NodeList authorList = e1.getElementsByTagName(“author”);
for (int j = 0; j < authorList.getLength(); j++) {
Element authorElement = (Element) authorList.item(j);
System.out.println(“author:” + authorElement.getFirstChild().getNodeValue());
}
NodeList yearList = e1.getElementsByTagName(“year”);
for (int j = 0; j < yearList.getLength(); j++) {
Element yearElement = (Element) yearList.item(j);
System.out.println(“year:” + yearElement.getFirstChild().getNodeValue());
}
NodeList priceList = e1.getElementsByTagName(“price”);
for (int j = 0; j < priceList.getLength(); j++) {
Element priceElement = (Element) priceList.item(j);
System.out.println(“price:” + priceElement.getFirstChild().getNodeValue());
}
System.out.println(“------------------------------”);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最后
毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节
美团面试经验
字节面试经验
菜鸟面试经验
蚂蚁金服面试经验
唯品会面试经验
因篇幅有限,图文无法详细发出
}
最后
毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节
美团面试经验
[外链图片转存中…(img-R1vjSUB8-1714384545460)]
字节面试经验
[外链图片转存中…(img-Qnvnokp8-1714384545460)]
菜鸟面试经验
[外链图片转存中…(img-k5TPnd0N-1714384545461)]
蚂蚁金服面试经验
[外链图片转存中…(img-uJ89doCs-1714384545462)]
唯品会面试经验
[外链图片转存中…(img-JlCbNJQY-1714384545462)]
因篇幅有限,图文无法详细发出