下面讲述根据xml生成对应序列化反序列化类的过程,xml需要首先转化为xsd,然后再生成为实体类。其中,XSD是XML Schema Definition的缩写。

1.拥有一个xml文件

2.打开vs的command line:

xsd *.xml ,执行这个命令 是通过xml文件生成xsd文件,xsd文件将生成在当前命令目录下。

xsd *.xsd /classes 是通过xsd文件生成xml的解析类,cs文件。示例顺便指定了命名空间为Test

这样就可以把cs文件放到项目中去使用了,这个cs文件就是xml对应的解析类。

PS :xsd自动解析的文件不知道每个节点是不是唯一的还是有多个。如果需要指定某节点是唯一的,可以在生成xsd文件之后,把xsd文件放到vs中,

使用xml(Text) editor 方式打开,然后指定maxOccurs="1",这样就指定了当前节点为唯一一个了。maxOccurs="unbounded",表明xml节点可以有很多个。 这样再把修改的xsd使用xsd *.xsd /classes 命令生成cs文件,或许更满足你的需求。

3. 解析 xml

        static void Main(string[] args)
{
try
{
XmlSerializer ser = new XmlSerializer(typeof(Response));
//读取xml进行解析
FileStream fs = new FileStream(@"D:\a.xml", FileMode.Open);
Response response = ser.Deserialize(fs) as Response;
response.SIP.Line1.Port = "9999";
fs.Close();
//修改xml并保存
fs = new FileStream(@"D:\a.xml", FileMode.Open, FileAccess.Write);
ser.Serialize(fs, response);
fs.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}

  其中Response是我xml的首节点。

附加:

我的xml示例是:

<Response>
<APIVersion>1.0</APIVersion>
<Authenticated>true</Authenticated>
<Global>
<SoftwareUpgrade>
<Enabled>false</Enabled>
<Version/>
<URL/>
<Rule/>
<RetryInterval>3600</RetryInterval>
</SoftwareUpgrade>
<Provisioning>
<Enabled>true</Enabled>
<URL>https://eeee.cn</URL>
<Interval>86400</Interval>
</Provisioning>
<Phonebook>
<Enabled>true</Enabled>
<URL>https://ffff.com</URL>
</Phonebook>
</Global>
<SIP>
<Line1>
<DisplayName>Terr</DisplayName>
<URI>5538769</URI>
<PreferredURI>for@abc.com</PreferredURI>
<AuthName>5530769</AuthName>
<Password>1sPU</Password>
<Transport>TCP</Transport>
<Mailbox>
123
</Mailbox>
<Port>7899</Port>
<Proxy>
<AutoMode>off</AutoMode>
<Proxy1>proxy</Proxy1>
<Proxy2/>
</Proxy>
</Line1>
</SIP>
</Response>

  

xsd解析xml的更多相关文章

  1. 使用HttpClient 发送get、post请求,及其解析xml返回数据

    一.关于HttpClient的使用: 可以参考这个博客地址,这里有详细的介绍,需要的可以先看一下: 地址是:http://blog.csdn.net/wangpeng047/article/detai ...

  2. xml语法、DTD约束xml、Schema约束xml、DOM解析xml

    今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...

  3. Java 解析 XML

    Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...

  4. java解析XML四种方法

    XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML. XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便 ...

  5. 详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...

  6. spring中解析xml

    解析xml有SAX,Stax,dom等方式,那么spring中是如何解析xml文件的呢? Document doc = this.documentLoader.loadDocument( inputS ...

  7. 【Java】详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...

  8. xml--通过DOM解析XML

    此文章通过3个例子表示DOM方式解析XML的用法. 通过DOM解析XML必须要写的3行代码. step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器) step 2:获得具体的dom解 ...

  9. Java中解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...

随机推荐

  1. [JZOJ 5778] 没有硝烟的战争

    思路: 记\(dp[i][j] = 0/1\)来表示第\(i\)个动物报的数字是\(j\),有无必胜策略. 判断有没有转移就可以了. 输出直接对于每一只动物,看\(dp[i][1->k]\)有没 ...

  2. 实现客户端连接Mysql数据库服务器

    以前学习mysql的时候,都是部署在本机,这样不存在客户端主机与服务器主机连接的问题,都是直接用localhost登录就行. 今天因项目需要,我们把mysql部署在服务器上,然后客户端装了client ...

  3. 资源-Android:Android

    ylbtech-资源-Android:Android 1.返回顶部 1. https://developer.android.google.cn/studio 2. 2.返回顶部 1. 1.1 1.2 ...

  4. CSS3视口单位vw,wh

    vw和vh是视口(viewport units)单位,何谓视口,就是根据你浏览器窗口的大小的单位,不受显示器分辨率的影响,是不是很神奇,这就代表了,我们不需要顾虑到现在那么多不同电脑有关分辨率的自适应 ...

  5. MDK 添加芯片支持 以STM32F103ZE为例

    问题说明: 新建mdk工程时第一步是选芯片(以STM32F103ZE为例),但是芯片没有的话需要自己手动添加,如图: 解决方法: 下载KEIL MDK5以后是没有安装device的,如果此时创建工程会 ...

  6. HDFS under replicated blocks

    under replicated blocks 解决: 找出没有复制的block: hdfs fsck / | grep 'Under replicated' | awk -F':' '{print ...

  7. Wireless Password HDU - 2825

    题意: 给出m个模式串,要求构造一长度为n的文本串,至少包括k种模式串,求有多少种可能的模式串. k<=10  然后可以想到状压 一个文本串,k种模式串,很容易想到AC自动机. 把所有的模式串放 ...

  8. Linux安装Java与Eclipse

    Linux安装Java和Eclipse 一.准备工作 1.下载jdk  https://www.oracle.com/technetwork/java/javase/downloads/jdk8-do ...

  9. 模拟实现call、apply

    1. 知识点补充: 首先在模拟实现前,先Mark一些我之前不知道的知识: a. eval(string)函数:可计算某个字符串,并执行其中的JavaScript代码 其中,string是必需传入的待计 ...

  10. 迭代器/生成器/装饰器 /Json & pickle 数据序列化

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...