xml 订阅
可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。 [1]  在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。 [2] 展开全文
可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。 [1]  在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。 [2]
信息
外文名
Extensible Markup Language
类    型
标记语言
缩写
XML(也做文件扩展名)
中文名
可扩展标记语言
其他称呼
可扩展置标语言、可扩展标识语言
中文
可扩标言
可扩展标记语言简介
可扩展标记语言与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,可扩展标记语言仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:可扩展标记语言极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。 [3]  XML的简单易于在任何应用程序中读/写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其他的数据交换格式,但不久之后它们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。 [3] 
收起全文
精华内容
参与话题
问答
  • xml

    万次阅读 2019-05-23 15:39:41
    * 声明信息: <? xml version="1.0" encoding="UTF-8"?>(用于描述xml的版本和编码方式) * xml有且仅有一个根元素 * xml大小写敏感 ...DTD用于约束xml的文档格式,保证xml是一个有效的xml ...
    * 声明信息:
     		<? xml version="1.0" encoding="UTF-8"?>(用于描述xml的版本和编码方式)
    * xml有且仅有一个根元素
    * xml大小写敏感
    * xml标签成对,而且要正确嵌套
    * 属性值要使用双引号
    * 注释:<!--这里是注释-->
    

    在这里插入图片描述
    DTD(文档类型定义)

    • DTD用于约束xml的文档格式,保证xml是一个有效的xml
    • DTD可以分为两种,内部DTD,外部DTD
      • 内部DTD:
      	<!DOCTYPE 根元素 [<!--元素声明-->
      		<!ELEMENT 元素名 (子元素)>
      		<!ATTLIST 元素名称 属性名称 属性类型 默认值>
      	]>	
      
      • 外部DTD:
        	<!DOCTYPE 根元素 system “文件名 ”>
        	外部DTD文件中不用写<!DOCTYPE 根元素 [ <!--DTD文件中的内容-->]>
        
    展开全文
  • web.xml的加载过程配置详解

    万次阅读 多人点赞 2017-12-02 09:24:31
    一:web.xml加载过程  简单说一下,web.xml的加载过程。当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等)。首先会去读取web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常的被启动...

     一:web.xml加载过程

      简单说一下,web.xml的加载过程。当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等)。首先会去读取web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常的被启动起来。

      启动WEB项目的时候,容器首先会去读取web.xml配置文件中的两个节点:<listener> </listener>和<context-param> </context-param>如图:

      

      紧接着,容器创建一个ServletContext(application),这个web项目的所有部分都将共享这个上下文。容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存入ServletContext。  

      容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听,在监听中会有初始化方法,启动Web应用时,系统调用Listener的该方法 contextInitialized(ServletContextEvent args),在这个方法中获得:

      ServletContext application =ServletContextEvent.getServletContext();

      context-param的值= application.getInitParameter("context-param的键");

      得到这个context-param的值之后,你就可以做一些操作了。

      举例:你可能想在项目启动之前就打开数据库,那么这里就可以在<context-param>中设置数据库的连接方式(驱动、url、user、password),在监听类中初始化数据库的连接。这个监听是自己写的一个类,除了初始化方法,它还有销毁方法,用于关闭应用前释放资源。比如:说数据库连接的关闭,此时,调用contextDestroyed(ServletContextEvent args),关闭Web应用时,系统调用Listener的该方法。

      接着,容器会读取<filter></filter>,根据指定的类路径来实例化过滤器。

      以上都是在WEB项目还没有完全启动起来的时候就已经完成了的工作。如果系统中有Servlet,则Servlet是在第一次发起请求的时候被实例化的,而且一般不会被容器销毁,它可以服务于多个用户的请求。所以,Servlet的初始化都要比上面提到的那几个要迟。总的来说,web.xml的加载顺序是: <context-param>-> <listener> -> <filter> -> <servlet>。其中,如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。

      二:web.xml标签详解

      1.<web-app></web-app>

      <web-app></web-app>是部署描述的根元素,该元素含23个子元素。在Servlet2.3中,子元素必须按照DTD文件描述中指定的顺序出现。比如:如果部署描述符中的<web-app>元素有<servlet>和<servlet-mapping>两个子元素,则<servlet>子元素必须出现在<servlet-mapping>子元素之前。在Servlet2.4中,顺序并不重要。

      2.<display-name></display-name> 

      <display-name></display-name>定义web应用的名称。如<display-name>trk-order-rest</display-name>

      3.<distributable/>

      <distributable/>可以使用distributable元素来告诉servlet/JSP容器,Web容器中部署的应用程序适合在分布式环境下运行。

      4.<context-param></context-param>

      

      <context-param>元素含有一对参数名和参数值,用作应用的Servlet上下文初始化参数,参数名在整个Web应用中必须是惟一的,在web应用的整个生命周期中上下文初始化参数都存在,任意的Servlet和jsp都可以随时随地访问它。<param-name>子元素包含有参数名,而<param-value>子元素包含的是参数值。作为选择,可用<description>子元素来描述参数。

      配置Spring,必须需要<listener>,而<context-param>可有可无,如果在web.xml中不写<context-param>配置信息,默认的路径是/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数:在<param-value>里指定相应的xml文件名,如果有多个xml文件,可以写在一起并以“,”号分隔,比如在business-client工程中,我们采用了自定义配置方式,<context-param>配置如下:

      

      配置在同一个容器中的多个web项目,要配置不同的webAppRootKey,web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为“webapp.root”,为防止log4j配置冲突,每个项目配置不同的webAppRootKey。如下:

      

      当然也不能重复,否则报类似下面的错误:

      Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/project1/] instead of   [/home/user/tomcat/webapps/project2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

      5.<session-config></session-config>

      

      <session-config> 用于设置容器的session参数,比如:<session-timeout>用于指定http session的失效时间。默认时间设置(30minutes)。<session-timeout>用来指定默认的会话超时时间间隔,以分钟为单位。该元素值为整数。如果 session-timeout元素的值为零或负数,则表示会话将永远不会超时。

      6.<filter></filter>见我的博客,这里不在阐述(http://www.cnblogs.com/vanl/p/5742501.html)

      

      7.<listener></listener>见我的博客,这里不在阐述。(http://www.cnblogs.com/vanl/p/5753722.html)

      

      8.<servlet></servlet>

      8.1.Servlet介绍

      Servlet通常称为服务端小程序,是服务端的程序,用于处理及响应客户的请求。Servlet是一个特殊的Java类,创建Servlet类自动继承HttpServlet。客户端通常只有GET和POST两种请求方式,Servlet为了响应这两种请求,必须重写doGet()和doPost()方法。大部分时候,Servlet对于所有的请求响应都是完全一样的,此时只需要重写service()方法即可响应客户端的所有请求。另外HttpServlet有两个方法:

      init(ServletConfig config):创建Servlet实例时,调用该方法初始化Servlet资源。

      destory():销毁Servlet实例时,自动调用该方法回收资源。

      通常无需重写init()和destory()两个方法,除非需要在初始化Servlet时,完成某些资源初始化的方法,才考虑重写init()方法。如果重写了init()方法,应该在重写该方法的第一行调用super.init(config),该方法将调用HttpServlet的init()方法。如果需要在销毁Servlet之前,先完先完成某些资源的回收,比如关闭数据库链接,才需要重写destory()方法。

      8.2.Servlet的生命周期

      创建Servlet实例有两个时机:

      客户端第一次请求某个Servlet时,系统创建该Servlet的实例,大部分Servlet都是这种Servlet;

      web应用启动时立即创建Servlet实例,即<load-on-start>1</laod-on-start>(LZ有篇文章详细说明:http://www.cnblogs.com/vanl/p/5756122.html)

      每个Servlet的运行都遵循如下生命周期:

      (1)创建Servlet实例。

      (2)Web容器调用Servlet的init()方法,对Servlet进行初始化。

      (3)Servlet初始化之后,将一直存在与容器之中,用于响应客户端请求,如果客户端发送GET请求,容器调用Servlet的doGet()方法处理并响应请求;如果客户端发送POST请求,容器调用Servlet的doPost()方法处理并响应请求。或者统一使用service()方法处理来响应用户请求。

      (4)Web容器决定销毁Servlet时,先调用Servlet的destory()方法,通常在关闭Web应用时销毁Servlet实例。

      8.3.Servlet的配置

      为了让Servlet能响应用户请求,还必须将Servlet配置在web应用中,配置Servlet需要修改web.xml文件。从Servlet3.0开始,配置Servlet有两种方式:

      (1)在Servlet类中使用基于注解的方式进行配置:@WebServlet

      (2)在web.xml文件中进行配置。

      

      我们用web.xml文件来配置Servlet,需要配置<servlet>和<servlet-mapping>。<servlet>用来声明一个Servlet。<icon>、<display-name>和<description>元素的用法和<filter>的用法相同。<init-param>元素与<context-param>元素具有相同的元素描述符,可以使用<init-param>子元素将初始化参数名和参数值传递给Servlet,访问Servlet配置参数通过ServletConfig对象来完成,ServletConfig提供如下方法:

      java.lang.String.getInitParameter(java.lang.String name):用于获取初始化参数

      ServletConfig获取配置参数的方法和ServletContext获取配置参数的方法完全一样,只是ServletConfig是取得当前Servlet的配置参数,而ServletContext是获取整个web应用的配置参数。

      8.4.配置Spring MVC的Servlet

      

      配置Spring MVC,指定处理请求的Servlet,有两种方式:

      (1)默认查找MVC配置文件的地址是:/WEB-INF/${servletName}-servlet.xml。

      (2)可以通过修改配置文件的位置,需要在配置DispatcherServlet时指定MVC配置文件的位置。

      我们在平台项目两个工程中分别使用了不同的配置方式,介绍如下:

      我们在business-client工程中按照默认方式查找MVC的配置文件,配置文件目录为: /WEB-INF/business-servlet.xml。工程目录结构如下所示:

      

      我们在public-base-server工程中,通过第2种方式进行配置,把spring-servlet.xml放到src/main/resources/config/spring-servlet.xml,则需要在配置DispatcherServlet时指定<init-param>标签。具体代码如下:

      

      工程目录结构如下:

      

      其中,classpath是web项目的类路径,可以理解为classes目录下面。因为无论这些配置文件放在哪里,编译之后没有特殊情况的话都直接在classes下面。在我们的工程里,经过验证,maven工程这两个

      

      路径经过编译后生成的文件都位于classes目录下,即这两个路径相当于类路径,在下面创建config文件夹(folder),创建自定义的xml配置文件即可。

      8.5.classpath与classpath*区别

      同名资源存在时,classpath只从第一个符合条件的classpath中加载资源,而classpath*会从所有的classpath中加载符合条件的资源。classpath*,需要遍历所有的classpath,效率肯定比不上classpath,因此在项目设计的初期就尽量规划好资源文件所在的路径,避免使用classpath*来加载。

      8.6.ContextLoaderListener和DispatcherServlet初始化上下文关系和区别

      

      从上图可以看出,ContextLoaderListener初始化的上下文加载的Bean是对于整个应用程序共享的,一般如:DAO层、Service层Bean;DispatcherServlet初始化的上下文加载的Bean是只对Spring MVC有效的Bean,如:Controller、HandlerMapping、HandlerAdapter等,该初始化上下文只加载Web相关组件。

      注意:用户可以配置多个DispatcherServlet来分别处理不同的url请求,每个DispatcherServlet上下文都对应一个自己的子Spring容器,他们都拥有相同的父Spring容器(业务层,持久(dao)bean所在的容器)。

      9.<welcome-file-list></welcome-file-list>

      

      <welcome-file-list>包含一个子元素<welcome-file>,<welcome-file>用来指定首页文件名称。<welcome-file-list>元素可以包含一个或多个<welcome-file>子元素。如果在第一个<welcome-file>元素中没有找到指定的文件,Web容器就会尝试显示第二个,以此类推。

    展开全文
  • using System.Xml.Serialization; namespace Core.Util { /// <summary> /// XML文档操作帮助类 /// </summary> public class XmlHelper { /// <summary> /// 序列化为XML字符串 /// <...
    using System;
    using System.IO;
    using System.Xml.Serialization;
    
    namespace Core.Util
    {
        /// <summary>
        /// XML文档操作帮助类
        /// </summary>
        public class XmlHelper
        {
            /// <summary>
            /// 序列化为XML字符串
            /// </summary>
            /// <param name="obj">对象</param>
            /// <returns></returns>
            public static string Serialize(object obj)
            {
                Type type = obj.GetType();
                MemoryStream Stream = new MemoryStream();
                XmlSerializer xml = new XmlSerializer(type);
                try
                {
                    //序列化对象
                    xml.Serialize(Stream, obj);
                }
                catch (InvalidOperationException)
                {
                    throw;
                }
                Stream.Position = 0;
                StreamReader sr = new StreamReader(Stream);
                string str = sr.ReadToEnd();
    
                sr.Dispose();
                Stream.Dispose();
    
                return str;
            }
        }
    }
    
    展开全文
  • /// Linq to xml示例 /// </summary> public class LinqToXml { /// <summary> /// 创建XML文件 /// </summary> /// <param name="xmlPath"></param> private static v
    /// <summary>
        /// Linq to xml示例
        /// </summary>
        public class LinqToXml
        {
            /// <summary>
            /// 创建XML文件
            /// </summary>
            /// <param name="xmlPath"></param>
            private static void CreateXmlFile(string xmlPath)
            {
                try
                {
                    //定义一个XDocument结构
                    XDocument myXDoc = new XDocument(
                       new XElement("Users",
                           new XElement("User", new XAttribute("ID", "111111"),
                               new XElement("name", "EricSun"),
                               new XElement("password", "123456"),
                               new XElement("description", "Hello I'm from Dalian")),
                           new XElement("User", new XAttribute("ID", "222222"),
                               new XElement("name", "Ray"),
                               new XElement("password", "654321"),
                               new XElement("description", "Hello I'm from Jilin"))));
                    //保存此结构(即:我们预期的xml文件)
                    myXDoc.Save(xmlPath);
    
                    string aa = myXDoc.ToString();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            /// <summary>
            /// 遍历xml信息
            /// </summary>
            /// <param name="xmlPath"></param>
            private static void GetXmlNodeInformation(string xmlPath)
            {
                try
                {
                    //定义并从xml文件中加载节点(根节点)
                    XElement rootNode = XElement.Load(xmlPath);
                    //XElement rootNode2 = XElement.Parse(xmlPath);
    
                    //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......)
                    IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("name")
                                                        select target;
                    foreach (XElement node in targetNodes)
                    {
                        Console.WriteLine("name = {0}", node.Value);
                    }
    
                    //查询语句: 获取ID属性值等于"111111"并且函数子节点的所有User节点(并列条件用"&&"符号连接)
                    IEnumerable<XElement> myTargetNodes = from myTarget in rootNode.Descendants("User")
                                                          where myTarget.Attribute("ID").Value.Equals("111111")
                                                                && myTarget.HasElements
                                                          select myTarget;
                    foreach (XElement node in myTargetNodes)
                    {
                        Console.WriteLine("name = {0}", node.Element("name").Value);
                        Console.WriteLine("password = {0}", node.Element("password").Value);
                        Console.WriteLine("description = {0}", node.Element("description").Value);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
    
            /// <summary>
            /// 修改xml信息
            /// </summary>
            /// <param name="xmlPath"></param>
            public static void ModifyXmlNodeInformation(string xmlPath)
            {
                try
                {
                    //定义并从xml文件中加载节点(根节点)
                    XElement rootNode = XElement.Load(xmlPath);
                    //查询语句: 获取ID属性值等于"222222"或者等于"777777"的所有User节点(或条件用"||"符号连接)
                    IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("User")
                                                        where target.Attribute("ID").Value == "222222"
                                                              || target.Attribute("ID").Value.Equals("777777")
                                                        select target;
                    //遍历所获得的目标节点(集合)
                    foreach (XElement node in targetNodes)
                    {
                        //将description节点的InnerText设置为"Hello, I'm from USA."
                        node.Element("description").SetValue("Hello, I'm from USA.");
                    }
                    //保存对xml的更改操作
                    rootNode.Save(xmlPath);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            /// <summary>
            /// 添加xml信息
            /// </summary>
            /// <param name="xmlPath"></param>
            private static void AddXmlNodeInformation(string xmlPath)
            {
                try
                {
                    //定义并从xml文件中加载节点(根节点)
                    XElement rootNode = XElement.Load(xmlPath);
                    //定义一个新节点
                    XElement newNode = new XElement("User", new XAttribute("ID", "999999"),
                                                                new XElement("name", "Rose"),
                                                                new XElement("password", "456123"),
                                                                new XElement("description", "Hello, I'm from UK."));
                    //将此新节点添加到根节点下
                    rootNode.Add(newNode);
                    //Add 在 XContainer 的子内容的末尾添加内容。
                    //AddFirst 在 XContainer 的子内容的开头添加内容。
                    //AddAfterSelf 在 XNode 后面添加内容。
                    //AddBeforeSelf 在 XNode 前面添加内容。
                    //保存对xml的更改操作
                    rootNode.Save(xmlPath);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            /// <summary>
            /// 删除xml信息
            /// </summary>
            /// <param name="xmlPath"></param>
            private static void DeleteXmlNodeInformation(string xmlPath)
            {
                try
                {
                    //定义并从xml文件中加载节点(根节点)
                    XElement rootNode = XElement.Load(xmlPath);
                    //查询语句: 获取ID属性值等于"999999"的所有User节点
                    IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("User")
                                                        where target.Attribute("ID").Value.Equals("999999")
                                                        select target;
    
                    //将获得的节点集合中的每一个节点依次从它相应的父节点中删除
                    targetNodes.Remove();
                    //保存对xml的更改操作
                    rootNode.Save(xmlPath);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
    
        }
    
    public static class xHelper
        {
            /// <summary>   
            /// 实体转化为XML   
            /// </summary>   
            public static string ParseToXml<T>(this T model, string fatherNodeName)
            {
                var xmldoc = new XmlDocument();
                var modelNode = xmldoc.CreateElement(fatherNodeName);
                xmldoc.AppendChild(modelNode);
    
                if (model != null)
                {
                    foreach (PropertyInfo property in model.GetType().GetProperties())
                    {
                        var attribute = xmldoc.CreateElement(property.Name);
                        if (property.GetValue(model, null) != null)
                            attribute.InnerText = property.GetValue(model, null).ToString();
                        //else
                        //    attribute.InnerText = "[Null]";
                        modelNode.AppendChild(attribute);
                    }
                }
                return xmldoc.OuterXml;
            }
    
            /// <summary>
            /// XML转换为实体,默认 fatherNodeName="body"
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="xml"></param>
            /// <param name="fatherNodeName"></param>
            /// <returns></returns>
            public static T ParseToModel<T>(this string xml, string fatherNodeName = "body") where T : class ,new()
            {
                if (string.IsNullOrEmpty(xml))
                    return default(T);
                var xmldoc = new XmlDocument();
                xmldoc.LoadXml(xml);
                T model = new T();
                var attributes = xmldoc.SelectSingleNode(fatherNodeName).ChildNodes;
                foreach (XmlNode node in attributes)
                {
                    foreach (var property in model.GetType().GetProperties().Where(property => node.Name == property.Name))
                    {
                        if (!string.IsNullOrEmpty(node.InnerText))
                        {
                            property.SetValue(model,
                                              property.PropertyType == typeof(Guid)
                                                  ? new Guid(node.InnerText)
                                                  : Convert.ChangeType(node.InnerText, property.PropertyType));
                        }
                        else
                        {
                            property.SetValue(model, null);
                        }
                    }
                }
                return model;
            }
    
            /// <summary>
            /// XML转实体
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="xml"></param>
            /// <param name="headtag"></param>
            /// <returns></returns>
            public static List<T> XmlToObjList<T>(this string xml, string headtag)
                where T : new()
            {
    
                var list = new List<T>();
                XmlDocument doc = new XmlDocument();
                PropertyInfo[] propinfos = null;
                doc.LoadXml(xml);
                XmlNodeList nodelist = doc.SelectNodes(headtag);
                foreach (XmlNode node in nodelist)
                {
                    T entity = new T();
                    if (propinfos == null)
                    {
                        Type objtype = entity.GetType();
                        propinfos = objtype.GetProperties();
                    }
                    foreach (PropertyInfo propinfo in propinfos)
                    {
                        //实体类字段首字母变成小写的  
                        string name = propinfo.Name.Substring(0, 1) + propinfo.Name.Substring(1, propinfo.Name.Length - 1);
                        XmlNode cnode = node.SelectSingleNode(name);
                        string v = cnode.InnerText;
                        if (v != null)
                            propinfo.SetValue(entity, Convert.ChangeType(v, propinfo.PropertyType), null);
                    }
                    list.Add(entity);
    
                }
                return list;
            }
        }
    
    展开全文
  • Maven之(六)setting.xml配置文件详解

    万次阅读 多人点赞 2016-05-24 09:51:24
    鉴于CSDN对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。 原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408... ...
  • TinyXml快速入门(一)

    万次阅读 热门讨论 2010-02-28 22:25:00
    对于xml文件,目前我的工作只是集中在配置文件和作为简单的信息文件来用,因此我不太喜欢使用msxml这种重量级的xml解析器,特别是使用msxml解析xml涉及到复杂的com类型转换,更是令人感觉繁琐。因此对于简单的xml...
  • pandas版xml json excel互转

    万次阅读 2019-04-15 17:40:41
    import json import xmltodict import pandas as pd 定义xml转json的函数 class Json_xml(): def init(self): ...def xmltojson(self,xmlfile,jsonfile): xmlstr='' with open(xmlfile, 'r', encodi...
  • Maven之(七)pom.xml配置文件详解

    万次阅读 多人点赞 2016-05-24 09:53:25
    鉴于CSDN对**版权保护的不作为**以及落后的运营手段,本博客将于近期关闭,并清空全部文章。 原有文章将会经过再次的校对、整理,转移至本人在**简书**的[博客空间](https://www.jianshu.com/u/3ec23ef9a408)... ...
  • Mybatis关联查询之一对多和多对一XML配置详解

    万次阅读 多人点赞 2017-12-21 10:53:05
    平时在开发过程中dao、bean和XML文件都是自动生成的,很少写XML的配置关系,今天记录一下mybatis的关联查询中的多对一和一对多的情况。 首先是有两张表(学生表Student和老师Teacher表),为了更易懂,这里只设置了...
  • XML编程

    千人学习 2016-12-31 23:18:48
    在现代的开发之中,XML技术无处不在,在各个开发框架中,也都到处充斥着XML配置文件的身影。本课程将为读者讲解XML的产生背景,并且详细分析了HTML与XML的区别、XML核心语法,重点在于XML的解析技术(DOM、SAX、DOM4...
  • 今天在使用JDK 9.0 环境下使用Hibernate 时候出现了这个错误,错误日志如下: 故障原因: JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。 java 9 中引入了模块的概念,默认情况下,...
  • xml文件下载报This XML file does not appear to have any style information associated with it. The document 可能是原文件缺失了文件声明 正常的xml文件 <?xml version='1.0' encoding='UTF-8'?> <...
  • XML简介

    千次阅读 2019-09-08 23:23:32
    什么是 XML XML 是可扩展标记语言(EXtensible Markup Language)。 XML 是一种很像HTML的标记语言。 XML 的设计宗旨是传输数据,而不是显示数据。 XML 标签没有被预定义。您需要自行定义标签。 XML 被设计为具有...
  • 警告提示如下: Description Resource Path Location ... No grammar constraints (DTD or XML Schema) referenced in the document. *.xml /XXXProject line 1 XML Problem 这是由于未指定 DOCTYPE 造成的警告提示
  • 但是在实际应用中也会存在不得不添加配置文件的情况,例如集成其他框架或者需要配置一些中间件等,在这种情况下,我们就需要引入我们自定义的xml配置文件了。 正文 1.创建springboot项目,项目结构如下: 2....
  • 解决办法很简单,把logback.xml的dtd注释掉。 Java程序在解析xml文件时,如果xml文件中指定了dtd,在默认会从指定的url下载dtd文件,但是很多情况下如果网络连接不上,或者防火墙原因,dtd文件无法下载下来导致...
  • XML学习1:XML概述

    千次阅读 2016-05-31 13:02:21
    早就知道了XML,可惜一直没有系统的学习过,这次接触Java文件传输,又用到了XML,因此就来学习学习吧。  一XML前导  对XML最好的描述  XML是独立于软件和硬件的信息传输工具。XML是W3C的推荐标准。XML无所不在...
  • 在spring中使用mybatis.其中目录结构如下 ...把UserMapper.xml放在resources目录下,并将mybatis.xml修改为: <mapper resource="UserMapper.xml" /> 就可以通过测试.请问: 如何访问到package目录下的资源.
  • 笔者之前准备做一个MongoTemplate的小demo,建完项目后发现pom.xml一直报错,也没有jar包导入。网上有病乱投医近一天未果,心态微崩,很急很气(之前没有遇到过)。 按照网上的帖子什么清楚缓存重启啦、重新导入啊...
  • xmlParser

    千次阅读 2008-06-06 12:46:00
    xmlParser是Dr. Ir. Frank Vanden Berghen个人开发的xml解析器,采用DOM模型,只有两个文件xmlParser.h和xmlParser.cpp。它简洁、快速,对于小的应用项目或者只是解析配置文件之类的应用足够了。 xmlParser可以被...
  • xml笔记

    万次阅读 2020-09-06 00:14:54
    该属性声明了本XML Schema文档中定义的元素是属于targetNamespace属性指定的命名空间(URI)下的。 可以将默认命名空间xmlns和targetNamespace给定不一样的值,用另外加了前缀的命名空间引用targetNamespace的命名...
  • 在把项目打成war包发布到linux的时候,遇到这个问题: 解决方法: 第一步: 确认打完之后的包WEB-INF的lib下面有jstl-1.2.jar和standard-1.1.2.jar(当然版本可以和我的不一样); 如果是在idea中的maven项目则...
  • PHP 运用 XMLWriter 读写 xml 文件

    千次阅读 2017-11-06 20:41:43
    米扑科技旗下的多个产品,需要脚本自动生成sitemap.xml,于是...读写xml的方式,主要围绕XMLWriter和XMLReader进行,前者用于生成xml,后者则是用来读取并解析xml 原文请见米扑博客:PHP 运用 XMLWriter 读写 xml 文件
  • 使用tinyxml2库解析xml

    千次阅读 2015-04-25 10:24:13
    tinyxml2简介tinyxml2是c++编写的轻量级的xml解析器,而且是开放源代码的,在一些开源的游戏引擎中用的比较多。源码托管在github上。 源码地址:https://github.com/leethomason/tinyxml2tinyxml2使用起来非常简单...
  • 安装与使用 今天博主将为大家分享一下Maven的下载与安装,不喜勿喷,如有异议欢迎讨论! 以下所写内容均与以前的文章有联系可以前往博文查看,陈永佳的博客 ...首先,Maven是基于项目对象模型(POM project object...
  • xmlspy2014 安装与破解

    万次阅读 多人点赞 2018-11-07 17:52:03
    0. 基础 xmlspy ...xmlspy 2014是一款非常实用的XML文本编辑器,该软件支持WYSWYG系统,并且可支持Unicode、多字符集。可对Well-formed和Validated两种类型的XML文档进行编辑。2014版新增了图...
  • C++通过TinyXML类库读写XML文件

    万次阅读 多人点赞 2015-09-21 18:28:06
    TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个...
  • XMLViewer xml查看器

    万次阅读 2017-12-14 15:26:28
    XMLViewer,查看xml文件非常好用的工具。 Viewer(xml查看器)是一款专业的xml查看软件。他可以帮助用户方便查看xml,以便检测语法是否正确。 安装之后,右键点击XML文件,选择“ View ”,方便快捷。下载地址:...
  • 需要向微信服务器post一个xmlxml中如果不带中文的话微信那边是可以正确识别的。但是如果带了中文微信那边就报xml格式错误。 发送的xml: ``` <xml> <appid><![CDATA[wx6e7c4258200000000]]> <attach><![CDATA...

空空如也

1 2 3 4 5 ... 20
收藏数 934,641
精华内容 373,856
关键字:

xml