java xsd 解析 xml文件_xsd解析xml

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

1.拥有一个xml文件

2.打开vs的command line:

395f925db6b6281a2d4ea1bb07ba424e.png

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

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

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

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

7f9c82583ff68746b14cf5d967876d98.png

使用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示例是:

1.0

true

false

3600

true

https://eeee.cn

86400

true

https://ffff.com

Terr

5538769

for@abc.com

5530769

1sPU

TCP

123

7899

off

proxy

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值