首页 > 其他分享 >Xml Tips

Xml Tips

时间:2023-07-04 13:31:58浏览次数:40  
标签:Xml xml ValidationEventHandler 注释 文档 Tips document


Xml Tips



1. xml 中的注释

<!-- 这是注释 -->

并非用于 XML 分析器的内容(例如与文档结构或编辑有关的说明)可以包含在注释中。注释以 <!-- 开头,以 --> 结尾,例如<!--catalog last updated 2000-11-01-->。

注释可以出现在文档序言中,包括文档类型定义 (DTD);文档之后;或文本内容中。注释不能出现在属性值中。不能出现在标记中。

分析器在遇到 > 时,就认为注释已结束;然后继续将文档作为正常的 XML 处理。因此,字符串 >

以下注释可以用于暂时除去标记。



<!--- <test pattern="SECAM" /><test pattern="NTSC" /> -->




在 HTML 中,可以使用注释来隐藏脚本和样式表。要在 XML 中使用此方法,可能必须检索注释,提取注释的内容,检查是否有标记字符,然后再进行重新分析。在此例中,CDATA 节是更好的选择。


2. 验证 xml 的合法性


??感觉不合适


public class MyXmlDocument: XmlDocument
{
  bool TryParseXml(string xml){
    try{
      ParseXml(xml);
      return true;
    }catch(XmlException e){
      return false;
    }
 }

Using a XmlValidatingReader will prevent the exceptions, if you provide your own ValidationEventHandler.


using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.XPath;

class XPathValidation
 {
     static void Main()
     {
         try
         {
             XmlReaderSettings settings = new XmlReaderSettings();
             settings.Schemas.Add("http://www.contoso.com/books", "contosoBooks.xsd");
             settings.ValidationType = ValidationType.Schema;

             XmlReader reader = XmlReader.Create("contosoBooks.xml", settings);
             XmlDocument document = new XmlDocument();
             document.Load(reader);

             ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationEventHandler);

             // the following call to Validate succeeds.
             document.Validate(eventHandler);

             // add a node so that the document is no longer valid
             XPathNavigator navigator = document.CreateNavigator();
             navigator.MoveToFollowing("price", "http://www.contoso.com/books");
             XmlWriter writer = navigator.InsertAfter();
             writer.WriteStartElement("anotherNode", "http://www.contoso.com/books");
             writer.WriteEndElement();
             writer.Close();

             // the document will now fail to successfully validate
             document.Validate(eventHandler);
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.Message);
         }
     }

     static void ValidationEventHandler(object sender, ValidationEventArgs e)
     {
         switch (e.Severity)
         {
             case XmlSeverityType.Error:
                 Console.WriteLine("Error: {0}", e.Message);
                 break;
             case XmlSeverityType.Warning:
                 Console.WriteLine("Warning {0}", e.Message);
                 break;
         }

     }
 }

标签:Xml,xml,ValidationEventHandler,注释,文档,Tips,document
From: https://blog.51cto.com/u_16156420/6619678

相关文章

  • 原生 new XMLHttpRequest() 请求
       letxhr=newXMLHttpRequest();    //先new一个 xhr.open("POST","https://chunyuanqing.cn/adminapi/order/batchdelivery/import");  //请求的类型     请求的地址 xhr.setRequestHeader('Authori-zation',bz);       ......
  • JAVA生成xml文件格式
    publicboolean A(参数1,……){Documentdocument=DocumentHelper.createDocument();Namespacena=Namespace.get("");Strings=null;na=new Namespace(xxxxxxxxxxxxxxxxxxxxx);//命名空间Elementroot=document.addElement(newQName(“A......
  • IOC容器基本使用(XML配置)
    一、Bean的实例化方式1.静态内部类一个外部类里面定义了一个静态内部类:publicclassOuterClass{staticclassInnerClass{publicvoidinnerMethod(){System.out.println("Thisisainnerclassm......
  • 光脚丫学LINQ(010):将内存中的对象转换为XML
    视频演示:http://u.115.com/file/f24db1fdfa 通过LINQ查询,可以轻松地在内存中的数据结构、SQL数据库、ADO.NET数据集和XML流或文档之间转换数据。下面的示例将内存中的数据结构中的对象转换为XML元素。List<Student>Students=newList<Student>(){newStudent{......
  • [代码]DOM和LINQ to XML创建XML树的三种方式
    此代码主要示范了DOM和LINQtoXML三种创建XML树的方式。第01种、使用W3CDOM创建XML树可以使用XmlDocument.CreateElement()方法创建XML元素。使用XmlElement.InnerText为元素添加内容,比如在元素的开始标记和结束标记之间添加字符串内容。使用XmlElement.SetAttribute()方法为元素......
  • [代码]使用LINQ的查询结果填充XML树(LINQ to XML)
    此代码使用的是LINQtoXML的函数构造功能创建一个XML树,其中树中的一些元素是通过LINQ查询结果填充。实际上,通过本例也可以看到如何使用LINQtoXML将原始XML文档转换成为另外一种XML文档。下面代码中使用的PurchaseOrder.xml文档内容:<?xmlversion="1.0"?><PurchaseOrderPurchas......
  • [代码]创建XDocument对象(LINQ to XML)
    LINQtoXML中的XDocument是用来表示内存中的XML文档的。同样可以使用函数构造功能来创建此对象。此示例代码主要用来演示如何创建一个通用的XML文档。示例代码代码中创建的XDocument对象,包含了2个注释(XComment),1个处理指令(XProcessingInstrucation),1个根元素及其若干子元素,也为......
  • [代码]如何从文件加载XML(LINQ to XML)
    此示例代码演示如何使用XElement.Load()方法从文件中加载XML。示例代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Xml.Linq;namespaceDemo02Ex01{classProgram{staticvoidMain(string[]arg......
  • [代码]如何分析XML字符串(LINQ to XML)
    此代码演示如何使用XElement.Parse()方法分析XML字符串,并创建XElement元素。从编程效率来讲这种做法可能效率非常的高,但从代码的执行效率来看,还是使用函数构造的方式创建XML树的效率高一点。示例代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSys......
  • [代码]元素的附加和克隆(LINQ to XML)
    当将一个XElement对象添加给一个XML树的时候,如果此XElement对象没有父级,即不是另外一个XML树的一部分,此时将会将此元素直接添加给XML树;如果XElement对象有父级,则会克隆这个XElement对象,然后将克隆的对象添加到新的XML树。示例代码代码中的Child1被添加到XmlTree1元素,因此它已经有了......