`
bdk82924
  • 浏览: 563398 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

W3c解析

阅读更多
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;

    }
}

 

分享到:
评论

相关推荐

    w3c源码w3c源码

    这些引擎负责解析HTML、CSS,并将它们转换为可交互的网页,这一过程涉及到W3C标准的严格遵循。C++的性能优势使得它可以处理复杂的DOM(文档对象模型)操作,快速地解析和执行JavaScript代码。 首先,我们来看HTML。...

    xml.rar_XML c语言_c语言 xml_resolver_xml解析 c_解析xml

    1. **语法验证**:确保XML文档符合W3C标准,包括正确的嵌套、关闭标签、属性值引号等。 2. **命名规则**:XML元素和属性名必须遵循一定的命名规则,不能以数字开头,不能包含特殊字符。 3. **编码识别**:XML文档...

    w3c的xml的解析器

    这是xml(10年内不会失业的技术),英语不是很差的就能看懂

    W3C标准 W3C代码标准规范

    ### W3C标准详解 #### 一、W3C标准的目的与重要性 W3C(World Wide Web Consortium,万维网联盟)是一国际性的组织,致力于制定互联网标准,确保Web技术的兼容性和互操作性。W3C标准的目的在于为Web开发提供一套...

    w3c-dom.jar 包

    w3c-dom.jar 包 dom解析xml使用 包 免积分下载

    W3C标准代码简介

    **W3C标准代码简介** **一、W3C标准的定义与意义** W3C,全称为万维网联盟(World Wide Web Consortium),是一个全球性的标准化组织,致力于制定和推广Web技术的标准,以确保不同平台、技术和开发者之间的兼容性...

    W3C DOM操作

    ### W3C DOM操作知识点详解 #### 一、DOM与W3C标准 - **DOM (Document Object Model)**:是一种处理可扩展标记语言(如 XML 和 HTML)的标准接口。它定义了如何通过编程语言访问文档的结构、内容及属性。 - **W3C ...

    w3c 手册 javascript html css

    W3C的CSS规范确保了不同浏览器对样式的统一解析和呈现。 学习W3C手册对于Web开发者至关重要,因为它提供了官方、权威的技术指导。手册中包含了详细的语法介绍、实例演示、以及错误处理指南,帮助开发者理解和遵循...

    W3C标准XHTML

    它是由万维网联盟(W3C)制定的一系列标准,旨在提高网页的可读性、可访问性和可维护性。在W3C的标准定义中,XHTML是一种严格的、清洁的、向下兼容的HTML版本,它通过引入XML的语法规则,使得HTML文档更规范,从而...

    IIS W3C日志说明

    本文将深入解析Windows Server上IIS(Internet Information Services)的W3C扩展日志格式,旨在为IT专业人士提供详尽的解读指南。 ### IIS W3C日志格式概述 IIS的W3C日志格式是一种标准的日志记录方式,它提供了...

    w3c漂浮qq代码

    【标题解析】:“w3c漂浮qq代码”这个标题提到了两个关键概念:W3C和漂浮QQ代码。W3C(World Wide Web Consortium)是互联网标准制定组织,负责确保网页技术的标准化和互操作性。漂浮QQ代码则指的是在网页上实现的一...

    W3C教程完全版离线版

    **W3C教程完全版离线版**是一个包含所有W3C相关标准和技术的详尽教程,无需互联网连接即可查阅,对于那些希望深入学习Web开发、网页设计和网络技术的人来说,这是一个极其宝贵的资源。这个离线版确保了无论何时何地...

    W3C+标准文档

    《W3C标准文档详解——探索网络技术的基石》 W3C,全称为World Wide Web Consortium(万维网联盟),是制定互联网标准的重要组织。它的标准文档是全球网络技术发展的指南针,涵盖HTML、CSS、XML、JavaScript等多个...

    wsdl教程 w3c

    **WSDL教程 W3C** Web服务描述语言(WSDL,Web Services Description Language)是用于定义Web服务接口的标准,由W3C(World Wide Web Consortium)组织制定并维护。WSDL文档采用XML格式,它详细描述了服务的位置、...

    w3c 生成xml 换行实例

    "w3c 生成xml 换行实例" w3c 生成xml 换行实例是使用 Java 语言通过 DOM(Document Object Model)来生成一个 XML 文档的示例代码。下面是该示例代码的详细解释: 首先,需要导入必要的包,包括 java.io、javax....

    W3C XML Schema

    **W3C XML Schema**,全称为World Wide Web Consortium (W3C)的XML Schema Definition Language,是XML文档的一种标准化验证机制。它为XML(eXtensible Markup Language)提供了强大的结构化定义语言,用于描述XML...

    W3C标准的个人理解以及常见的注意内容

    ### W3C标准详解及其对SEO的影响 #### W3C标准概述 W3C标准,全称为World Wide Web Consortium标准,是由万维网联盟制定的一系列规范和指导原则,旨在确保网页开发的质量与兼容性。它规定了一套严格的规则,用于...

    w3c标准html5手册

    HTML5是Web开发的最新标准,它在2014年由W3C(World Wide Web Consortium,万维网联盟)正式发布,旨在提升网页的互动性、可访问性和可用性。这个标准不仅更新了HTML语言,还引入了新的元素、APIs以及对多媒体的支持...

    CSS Javascript jQuery xHTML XMLHttp W3CSchool w3c标准html5手册

    在IT行业中,前端开发是构建网页和Web应用程序的关键部分,涉及...W3CSchool和w3c标准则是学习和参考这些技术的重要资源,它们提供了详尽的手册和教程,帮助开发者理解和掌握这些核心技术,从而提升Web开发的技能水平。

Global site tag (gtag.js) - Google Analytics