package xml;
import java.io.File;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class W3cDom
{
public static void main(String args[])
{
// creatXML();
// listXML();
modXML();
}
/**
* 创建XML j
*
* @author
* @date Jul 1, 2009 3:36:06 PM
*/
public static void creatXML()
{
try
{
String ID[] =
{
"1001", "1002", "1003"
};
String name[] =
{
"王峰", "刘海松", "李章帅"
};
// 创建XML文档中需要的数据
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument(); // 创建document节点对象
document.setXmlVersion("1.0");// 设置使用XML文件的版本
Element root = document.createElement("user");
document.appendChild(root);// 设置XML文件的根结点
for (int k = 1; k <= ID.length; k++)
{
root.appendChild(document.createElement("item"));
} // 在根节点下添加了三个节点
NodeList nodeList = document.getElementsByTagName("item");// 获得图书的节点集合
int size = nodeList.getLength();
for (int k = 0; k < size; k++)
{
Node node = nodeList.item(k);
if (node.getNodeType() == Node.ELEMENT_NODE)
{
Element elementNode = (Element) node;
elementNode.appendChild(document.createElement("id"));// 为图书添加一个名字标记
elementNode.appendChild(document.createElement("name"));// 为图书添加一个开车时间标记
}
}
nodeList = document.getElementsByTagName("id");// 获得名字的节点集合
size = nodeList.getLength();
for (int k = 0; k < size; k++)
{
Node node = nodeList.item(k);
if (node.getNodeType() == Node.ELEMENT_NODE)
{
Element elementNode = (Element) node;
elementNode.appendChild(document.createTextNode(ID[k])); // 为标记添加文本数据。
}
}
nodeList = document.getElementsByTagName("name");
size = nodeList.getLength();
for (int k = 0; k < size; k++)
{
Node node = nodeList.item(k);
if (node.getNodeType() == Node.ELEMENT_NODE)
{
Element elementNode = (Element) node;
elementNode.appendChild(document.createTextNode(name[k]));
}
}
TransformerFactory transFactory = TransformerFactory.newInstance();// 创建一个TransformerFactory(转换工厂对象)
Transformer transformer = transFactory.newTransformer();// 创建一个Transformer对像(文件转换对象)
DOMSource domSource = new DOMSource(document); // 把要转换的Document对象封装到一个DOMSource类中
File file = new File("user.xml");
FileOutputStream out = new FileOutputStream(file);
StreamResult xmlResult = new StreamResult(out);// 将要变换得到XML文件将来保存在StreamResult
transformer.transform(domSource, xmlResult);// 把节点树转换为XML文件
}
catch (Exception e)
{
System.out.println(e);
}
}
/**
*
* 获得列表
*
* @author
* @date Jul 1, 2009 3:37:41 PM
*/
public static void listXML()
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("user.xml"));
Element root = document.getDocumentElement();
String rooName = root.();// 获的根结点的名称
System.out.println("XML文件根结点的名称为:" + rooName);
NodeList nodelist = root.getElementsByTagName("item");// 获得标记名为学生的所有的标记集合
int size = nodelist.getLength();
for (int i = 0; i < size; i++)
{
Node node = nodelist.item(i);
String name = node.();
System.out.println(name + " :");
System.out.println(" id:" + getValue(node, "id"));
System.out.println(" name:" + getValue(node, "name"));
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
*
* 修改XML
*
* @author
* @date Jul 1, 2009 4:08:41 PM
*/
public static void modXML()
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("user.xml"));
Element root = document.getDocumentElement();
String rooName = root.();// 获的根结点的名称
System.out.println("XML文件根结点的名称为:" + rooName);
NodeList nodelist = root.getElementsByTagName("item");// 获得标记名为学生的所有的标记集合
int size = nodelist.getLength();
for (int i = 0; i < size; i++)
{
Node node = nodelist.item(i);
String name = node.();
System.out.println(name + " :");
// System.out.println(content);
System.out.println(" id:" + getValue(node, "id"));
Node n = getNode(node, "name");
System.out.println(" name:" + getValue(node, "name"));
if ("2001".equals(getValue(node, "id")))
{
n.setTextContent("~~");
node.removeChild(n);
}
}
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
DOMSource domSource = new DOMSource(document);
File file = new File("user.xml");
FileOutputStream out = new FileOutputStream(file);
StreamResult xmlResult = new StreamResult(out);
transformer.transform(domSource, xmlResult);
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
*
* 根据node 获取下面子节点的Node
*
* @author
* @date Jul 1, 2009 4:06:14 PM
* @param node
* node
* @param name
* name
* @return Node
*/
public static Node getNode(Node node, String name)
{
Element e = (Element) node;
NodeList nodelist = e.getElementsByTagName(name);
Node n = nodelist.item(0);
return n;
}
/**
* 根据node 获取下面子节点的Node的value
*
* @author
* @date Jul 1, 2009 4:06:58 PM
* @param node
* node
* @param name
* name
* @return String
*/
public static String getValue(Node node, String name)
{
Element e = (Element) node;
NodeList nodelist = e.getElementsByTagName(name);
String value = nodelist.item(0).getTextContent();
return value;
}
}
分享到:
相关推荐
这些引擎负责解析HTML、CSS,并将它们转换为可交互的网页,这一过程涉及到W3C标准的严格遵循。C++的性能优势使得它可以处理复杂的DOM(文档对象模型)操作,快速地解析和执行JavaScript代码。 首先,我们来看HTML。...
1. **语法验证**:确保XML文档符合W3C标准,包括正确的嵌套、关闭标签、属性值引号等。 2. **命名规则**:XML元素和属性名必须遵循一定的命名规则,不能以数字开头,不能包含特殊字符。 3. **编码识别**:XML文档...
这是xml(10年内不会失业的技术),英语不是很差的就能看懂
### W3C标准详解 #### 一、W3C标准的目的与重要性 W3C(World Wide Web Consortium,万维网联盟)是一国际性的组织,致力于制定互联网标准,确保Web技术的兼容性和互操作性。W3C标准的目的在于为Web开发提供一套...
w3c-dom.jar 包 dom解析xml使用 包 免积分下载
**W3C标准代码简介** **一、W3C标准的定义与意义** W3C,全称为万维网联盟(World Wide Web Consortium),是一个全球性的标准化组织,致力于制定和推广Web技术的标准,以确保不同平台、技术和开发者之间的兼容性...
### W3C DOM操作知识点详解 #### 一、DOM与W3C标准 - **DOM (Document Object Model)**:是一种处理可扩展标记语言(如 XML 和 HTML)的标准接口。它定义了如何通过编程语言访问文档的结构、内容及属性。 - **W3C ...
W3C的CSS规范确保了不同浏览器对样式的统一解析和呈现。 学习W3C手册对于Web开发者至关重要,因为它提供了官方、权威的技术指导。手册中包含了详细的语法介绍、实例演示、以及错误处理指南,帮助开发者理解和遵循...
它是由万维网联盟(W3C)制定的一系列标准,旨在提高网页的可读性、可访问性和可维护性。在W3C的标准定义中,XHTML是一种严格的、清洁的、向下兼容的HTML版本,它通过引入XML的语法规则,使得HTML文档更规范,从而...
本文将深入解析Windows Server上IIS(Internet Information Services)的W3C扩展日志格式,旨在为IT专业人士提供详尽的解读指南。 ### IIS W3C日志格式概述 IIS的W3C日志格式是一种标准的日志记录方式,它提供了...
【标题解析】:“w3c漂浮qq代码”这个标题提到了两个关键概念:W3C和漂浮QQ代码。W3C(World Wide Web Consortium)是互联网标准制定组织,负责确保网页技术的标准化和互操作性。漂浮QQ代码则指的是在网页上实现的一...
**W3C教程完全版离线版**是一个包含所有W3C相关标准和技术的详尽教程,无需互联网连接即可查阅,对于那些希望深入学习Web开发、网页设计和网络技术的人来说,这是一个极其宝贵的资源。这个离线版确保了无论何时何地...
《W3C标准文档详解——探索网络技术的基石》 W3C,全称为World Wide Web Consortium(万维网联盟),是制定互联网标准的重要组织。它的标准文档是全球网络技术发展的指南针,涵盖HTML、CSS、XML、JavaScript等多个...
**WSDL教程 W3C** Web服务描述语言(WSDL,Web Services Description Language)是用于定义Web服务接口的标准,由W3C(World Wide Web Consortium)组织制定并维护。WSDL文档采用XML格式,它详细描述了服务的位置、...
"w3c 生成xml 换行实例" w3c 生成xml 换行实例是使用 Java 语言通过 DOM(Document Object Model)来生成一个 XML 文档的示例代码。下面是该示例代码的详细解释: 首先,需要导入必要的包,包括 java.io、javax....
**W3C XML Schema**,全称为World Wide Web Consortium (W3C)的XML Schema Definition Language,是XML文档的一种标准化验证机制。它为XML(eXtensible Markup Language)提供了强大的结构化定义语言,用于描述XML...
### W3C标准详解及其对SEO的影响 #### W3C标准概述 W3C标准,全称为World Wide Web Consortium标准,是由万维网联盟制定的一系列规范和指导原则,旨在确保网页开发的质量与兼容性。它规定了一套严格的规则,用于...
HTML5是Web开发的最新标准,它在2014年由W3C(World Wide Web Consortium,万维网联盟)正式发布,旨在提升网页的互动性、可访问性和可用性。这个标准不仅更新了HTML语言,还引入了新的元素、APIs以及对多媒体的支持...
在IT行业中,前端开发是构建网页和Web应用程序的关键部分,涉及...W3CSchool和w3c标准则是学习和参考这些技术的重要资源,它们提供了详尽的手册和教程,帮助开发者理解和掌握这些核心技术,从而提升Web开发的技能水平。