C#使用XSD来验证XML。

我使用XmlReader来处理,因为觉得XmlReader简单点。

我自己做了个例子来说明,例子里的XML不是很复杂,没有子节点的。

XML 文件(a.xml):

<?xml version="1.0" encoding="utf-8" ?> <PROFILE> <PROFILEID>0001</PROFILEID> <DESCIPTION>我的内容</DESCIPTION> <URL><![CDATA[http://www.bclc.com/app/DidYouWin/WinningNumbers/Lotto649Print.asp?YEAR=2000&MONTH=6&DRAW_DATE=&GAMEID=1]]></URL> <NUMBERS>6</NUMBERS> <BONUS>true</BONUS> </PROFILE>


XSD文件(a.xsd):

<?xml version="1.0" encoding="utf-16"?> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="PROFILE"> <xsd:complexType> <xsd:sequence> <xsd:element name="PROFILEID" type="xsd:int" /> <xsd:element name="DESCIPTION" type="xsd:string" /> <xsd:element name="URL" type="xsd:string" /> <xsd:element name="NUMBERS" type="xsd:int" /> <xsd:element name="BONUS" type="xsd:boolean" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>


C#文件

XmlReaderSettings st = new XmlReaderSettings(); st.ValidationType = ValidationType.Schema; st.Schemas.Add(null, @"a.xsd"); //设置验证xml出错时的事件。 st.ValidationEventHandler += (obj, e)=>{ //这里加上你的信息处理。 }; XmlReader xr = XmlReader.Create(@"a.xml", st); while (xr.Read()) { if (xr.IsStartElement()){ xr.Read(); } } xr.Close();


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值