type="submit" value="提交"/>
// html
...
// js
// 实现提交方法
function form1() {
// 获取form
var form1 = document.getElementById("form1");
// 设置action
form1.action="hello.html";
// 提交form表单
from1.submit();
}
<a herf="hello.html?username=1234">使用超链接提交a>
onclick:鼠标点击事件
onchange:改变内容(一般和select一起使用)
onfocus:得到焦点
onblur:失去焦点
eXtensible Markup Language: 可扩展标记型语言
,<狗>狗>
。 xml version="1.0" encoding="gbk"?>
// 表示的内容不同
<aa>bbaa>
<aa>
bb
aa>
跟html里的差不多
可以解决多个字符都需要转义的操作,把这些内容放到CDATA区里面。
<b>if(a<b && b<c && c<d){}b>
// 写法
可以在xml中设置样式,设置样式只能对英文标签名称起作用。
// 引用外部的dtd文件
// 使用内部的dtd文件
]>
// 使用外部的dtd文件((网络上的dtd文件)
// struts2的配置文件用到
,子元素只能出现一次。
,表示元素只能出现其中的任意一个。<!ATTLIST 元素名称
属性名称 属性类型 属性的约束
>
(aa|bb|cc)
ENTITY 实体名称 "实体的值">
ENTITY TEST "AAA">
&实体名称;
// 查询所有name元素的值
private static void selectAll() throws Exception {
/*
* 1.创建解析器工厂
* 2.根据解析器工厂创建解析器
* 3.解析xml返回document
* 4.得到所有的name元素
* 5.返回集合,遍历集合,得到每一个name元素
*/
// 创建解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
// 创建解析器
DocumentBuilder builder = builderFactory.newDocumentBuilder();
// 解析xml返回document
Document document = builder.parse("src/person.xml");
// 得到name元素
NodeList list = document.getElementsByTagName("name");
// 遍历集合
for (int i = 0; i < list.getLength(); i++) {
Node name1 = list.item(i); // 得到每一个name元素
// 得到name元素里面的值
String s = name1.getTextContent();
System.out.println(s);
}
}
// 查询xml中第一个name元素的值
public static void selectSin() throws Exception {
/*
* 1.创建解析器工厂
* 2.根据解析器工厂创建解析器
* 3.解析xml返回document
* 4.得到所有的name元素
* 5.使用返回集合的item,下标获取具体的元素
* 6.得到具体的值
*/
// 创建解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
// 创建解析器
DocumentBuilder builder = builderFactory.newDocumentBuilder();
// 解析xml返回document
Document document = builder.parse("src/person.xml");
// 得到所有的name元素
NodeList list = document.getElementsByTagName("name");
// 使用下标,得到第一个元素
String s = list.item(0).getTextContent();
// 得到name里面的具体的值
System.out.println(s);
}
在第一个
下面(末尾)添加
// 在第一个p1下面(末尾)添加nv
public static void addSex() throws Exception {
/*
* 1.创建解析器工厂
* 2.根据解析器工厂创建解析器
* 3.解析xml返回document
* 4.得到第一个p1
* 5.创建sex标签
* 6.创建文本
* 7.把文本添加到sex下
* 8.把sex添加到第一个p1下
* 9.回写xml
*/
// 创建解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
// 创建解析器
DocumentBuilder builder = builderFactory.newDocumentBuilder();
// 解析xml返回document
Document document = builder.parse("src/person.xml");
// 得到所有的p1
NodeList list = document.getElementsByTagName("p1");
// 得到第一个p1
Node p1 = list.item(0);
// 创建sex标签
Element sex1 = document.createElement("sex");
// 创建文本
Text text1 = document.createTextNode("nv");
// 把文本添加到sex1下
sex1.appendChild(text1);
// 把sex1添加到p1下
p1.appendChild(sex1);
// 回写xml
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult("src/person.xml"));
}
修改第一个
下面的
内容是nan
// 修改第一个p1下面的内容是nan
public static void modifySex() throws Exception {
/*
* 1.创建解析器工厂
* 2.根据解析器工厂创建解析器
* 3.解析xml返回document
* 4.得到sex
* 5.修改sex里面的值
* 6.回写xml
*/
// 创建解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
// 创建解析器
DocumentBuilder builder = builderFactory.newDocumentBuilder();
// 得到document
Document document = builder.parse("src/person.xml");
// 得到sex
Node sex1 = document.getElementsByTagName("sex").item(0);
// 修改sex值
sex1.setTextContent("nan");
// 回写xml
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult("src/person.xml"));
}
删除
节点
// 删除nan 节点
public static void delSex() throws Exception {
/*
* 1.创建解析器工厂
* 2.根据解析器工厂创建解析器
* 3.解析xml返回document
* 4.得到sex
* 5.获取sex的父节点
* 6.使用sex的父节点删除sex
* 7.回写xml
*/
// 创建解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
// 创建解析器
DocumentBuilder builder = builderFactory.newDocumentBuilder();
// 得到document
Document document = builder.parse("src/person.xml");
// 得到sex
Node sex1 = document.getElementsByTagName("sex").item(0);
// 得到sex的父节点
Node p1 = sex1.getParentNode();
p1.removeChild(sex1);
// 回写xml
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult("src/person.xml"));
}
把xml中的所有元素名称打印出来
// 遍历节点,把所有元素名称打印出来
public static void listEelment() throws Exception {
/*
* 1.创建解析器工厂
* 2.根据解析器工厂创建解析器
* 3.解析xml返回document
* 4.得到根节点
* 5.得到根节点子节点
* 使用递归实现
*/
// 创建解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
// 创建解析器
DocumentBuilder builder = builderFactory.newDocumentBuilder();
// 得到document
Document document = builder.parse("src/person.xml");
// 编写一个方法实现遍历操作
list1(document);
}
private static void list1(Node node) {
// 判断元素类型的时候才打印
if (node.getNodeType() == Node.ELEMENT_NODE) {
System.out.println(node.getNodeName());
}
// 得到一层子节点
NodeList list = node.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
// 得到每一个节点
Node node1 = list.item(i);
list1(node1);
}
}