在c#.net中解析xml文件 [英] Parsing xml file in c#.net

查看:57
本文介绍了在c#.net中解析xml文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要解析xml文件。任何人都可以指导我

 <   rateResponse     rater   =  UWCGB_AUTO_CA_20070401_20080401 >  
< VersionNumber > 公司= UWCGB行=自动状态= CA有效= 20070401续订= 20080401 < / VersionNumber >
< PolicyNumber > 477372 < / PolicyNumber >
< Rule101Result0Nbr > 101 < / Rule101Result0Nbr >
< Rule101Result0Name > 政策有BI coverage < / Rule101Result0Name >
< Rule101Result0Iteration > 0 < / Rule101Result0Iteration >
< Rule101Result0EntityLevel &g t; 政策< / Rule101Result0EntityLevel > ;
< Rule101Result0FireFlag > 规则已解决< / Rule101Result0FireFlag >
< Rule101Result0TestResult > TRUE < / Rule101Result0TestResult >
< Rule101Result0Action > DEFINITION < / Rule101Result0Action < span class =code-keyword>>
< Rule101Result0ScreenMsg >
< / Rule101Result0ScreenMsg >
< Rule101Result0OutputMsg >
< / Rule101Result0OutputMsg >
< Rule101Result0InternalMsg >
< / Rule101Result0InternalMsg >
< Rule101Result0Suspense >
< / Rule101Result0Suspense >
< Rule101Result0Adjustment >
< / Rule101Result0Adjustment >
< < span class =code-leadattribute> Rule102Result0Nbr > 102 < / Rule102Result0Nbr >
< < span class =code-leadattribute> Rule102Result0Name > 政策有PD责任险< / Rule102Result0Name >
< ; Rule102Result0Iteration > 0 < / Rule102Result0Iteration >
< ; Rule102Result0EntityLevel > 政策< / Rule102Result0EntityLevel >
< ; Rule102Result0FireFlag > 规则已解决< / Rule102Result0FireFlag >
< Rule102Result0TestResult > TRUE < / Rule102Result0TestResult >
< Rule102Result0Action > 定义< / Rule102Result0Action >
< Rule102Result0ScreenMsg >
< span class =code-keyword>< / Rule102Result0ScreenMsg >
< Rule102Result0OutputMsg & gt;
< / Rule102Result0OutputMsg >
< Rule102Result0InternalMsg >
< / Rule102Result0InternalMsg >
< Rule102Result0Suspense >
< / Rule102Result0Suspense >
< Rule102Result0Adjustment < span class =code-keyword>>
< / Rule102Result0Adjustme nt >
< Rule103Result0Nbr > 103 < / Rule103Result0Nbr >
< Rule103Result0Name > 政策的责任范围< / Rule103Result0Name >
< Rule103Result0Iteration > 0 < / Rule103Result0Iteration >
< 茹le103Result0EntityLevel > 政策< / Rule103Result0EntityLevel >
< Rule103Result0FireFlag > 规则已解决< / Rule103Result0FireFlag >
< Rule103Result0Result > TRUE < / Rule103Result0Result >
< Rule103Result0Action > 定义< / Rule103Result0Action >
< < span class =code-leadattribute> Rule103Result0ScreenMsg >
< / Rule103Result0ScreenMsg >
< Rule103Result0OutputMsg >
< / Rule103Result0OutputMsg >
< ; Rule103Result0InternalMsg >
< / Rule103Result0InternalMsg >
< Rule103Result0Suspense >
< / Rule103Result0Suspense >
< Rule103Result0Adjustment >
< span class =code-keyword>< / Rule103Result0Adjustment >
< Rule107Result0Nbr > 107 < span class =code-keyword>< / Rule107Result0Nbr >
< Rule107Result0Name > 责任范围erage是必需的,仅限PD。< / Rule107Result0Name >
< Rule107Result0Iteration > 0 < / Rule107Result0Iteration >
< Rule107Result0EntityLevel > 政策< / Rule107Result0EntityLevel >
< Rule107Result0FireFlag > 规则已解决< / Rule107Result0FireFlag >
< Rule107Result0TestResult > FALSE < / Rule107Result0TestResult >
< Rule107Result0Action >



< restresponse>

解决方案

以下是一些供您参考的例子---



1.使用XMLDocument -

  public   static   class  XMLParserByXMLDocument 
{
private static string xmlUrl = http:// localhost:7467 / xmlDocument.xml;
// 使用XMLDocument类解析xml。
public static SomeClassParseByXMLDocument()
{
var X = new InformationA();
XmlDocument doc = new XmlDocument();
doc.Load(xmlUrl);
XmlNode InformationBNode = doc.SelectSingleNode( / InformationA / InformationB);
A.School = InformationBNode.SelectSingleNode( X)。InnerText;
A.Department = InformationBNode.SelectSingleNode( Y)。InnerText;
XmlNode AListNode = doc.SelectSingleNode( / InformationA / listA);
XmlNodeList ANodeList = AListNode.SelectNodes( A);
foreach (XmlNode节点 in AListNode)
{
A aA = new A();
aA.id = Convert.ToInt16(node.Attributes
.GetNamedItem( id).Value);
aA.name = node.InnerText;
A.Alist.Add(aA);
}
返回 A;
}



2.使用XDocument -

  //  使用XDocument类解析XML。 
public static InformationA ParseByXDocument()
{
var A = new InformationA();
XDocument doc = XDocument.Load(xmlUrl);
XElement generalElement = doc
.Element( InformationA
.Element( InformationB);
A.School = generalElement.Element( X)。
A.Department = generalElement.Element( Y)。

A.Alist =(来自 c doc.Descendants( A
select < span class =code-keyword> new A()
{
id = Convert.ToInt16(c.Attribute( id)。值),
name = c.Value,
})。ToList< a>();
返回 A;
}
}
}



3.使用XmlReader类 -

 XmlReader xmlReader = XmlReader.Create(  http://www.xxxx.net/.../。 ../ XmlRead.xml); 
while (xmlReader.Read())
{
if ((xmlReader.NodeType == XmlNodeType.Element)&&(xmlReader.Name == XmlRead))
{
if (xmlReader.HasAttributes)
Console.WriteLine(xmlReader.GetAttribute( ....)+ + xmlReader.GetAttribute( ...));
}
} < / a >


I need to parse below xml file.Can anyone guide me

<rateResponse rater="UWCGB_AUTO_CA_20070401_20080401">
  <VersionNumber>Company=UWCGB Line=Auto State=CA Effective=20070401 Renewal=20080401</VersionNumber>
  <PolicyNumber>477372</PolicyNumber>
  <Rule101Result0Nbr>101</Rule101Result0Nbr>
  <Rule101Result0Name>Policy has BI coverage</Rule101Result0Name>
  <Rule101Result0Iteration>0</Rule101Result0Iteration>
  <Rule101Result0EntityLevel>Policy</Rule101Result0EntityLevel>
  <Rule101Result0FireFlag>Rule Fired</Rule101Result0FireFlag>
  <Rule101Result0TestResult>TRUE</Rule101Result0TestResult>
  <Rule101Result0Action>DEFINITION </Rule101Result0Action>
  <Rule101Result0ScreenMsg>
  </Rule101Result0ScreenMsg>
  <Rule101Result0OutputMsg>
  </Rule101Result0OutputMsg>
  <Rule101Result0InternalMsg>
  </Rule101Result0InternalMsg>
  <Rule101Result0Suspense>
  </Rule101Result0Suspense>
  <Rule101Result0Adjustment>
  </Rule101Result0Adjustment>
  <Rule102Result0Nbr>102</Rule102Result0Nbr>
  <Rule102Result0Name>Policy has PD Liability coverage</Rule102Result0Name>
  <Rule102Result0Iteration>0</Rule102Result0Iteration>
  <Rule102Result0EntityLevel>Policy</Rule102Result0EntityLevel>
  <Rule102Result0FireFlag>Rule Fired</Rule102Result0FireFlag>
  <Rule102Result0TestResult>TRUE</Rule102Result0TestResult>
  <Rule102Result0Action>DEFINITION </Rule102Result0Action>
  <Rule102Result0ScreenMsg>
  </Rule102Result0ScreenMsg>
  <Rule102Result0OutputMsg>
  </Rule102Result0OutputMsg>
  <Rule102Result0InternalMsg>
  </Rule102Result0InternalMsg>
  <Rule102Result0Suspense>
  </Rule102Result0Suspense>
  <Rule102Result0Adjustment>
  </Rule102Result0Adjustment>
  <Rule103Result0Nbr>103</Rule103Result0Nbr>
  <Rule103Result0Name>Policy has Liability Coverage</Rule103Result0Name>
  <Rule103Result0Iteration>0</Rule103Result0Iteration>
  <Rule103Result0EntityLevel>Policy</Rule103Result0EntityLevel>
  <Rule103Result0FireFlag>Rule Fired</Rule103Result0FireFlag>
  <Rule103Result0Result>TRUE</Rule103Result0Result>
  <Rule103Result0Action>DEFINITION </Rule103Result0Action>
  <Rule103Result0ScreenMsg>
  </Rule103Result0ScreenMsg>
  <Rule103Result0OutputMsg>
  </Rule103Result0OutputMsg>
  <Rule103Result0InternalMsg>
  </Rule103Result0InternalMsg>
  <Rule103Result0Suspense>
  </Rule103Result0Suspense>
  <Rule103Result0Adjustment>
  </Rule103Result0Adjustment>
  <Rule107Result0Nbr>107</Rule107Result0Nbr>
  <Rule107Result0Name>Liability coverage is required, No PD only.</Rule107Result0Name>
  <Rule107Result0Iteration>0</Rule107Result0Iteration>
  <Rule107Result0EntityLevel>Policy</Rule107Result0EntityLevel>
  <Rule107Result0FireFlag>Rule Fired</Rule107Result0FireFlag>
  <Rule107Result0TestResult>FALSE</Rule107Result0TestResult>
  <Rule107Result0Action>


<restresponse>

解决方案

Here are some examples for your reference ---

1. By Using XMLDocument --

public static class XMLParserByXMLDocument
 {
     private static string xmlUrl = "http://localhost:7467/xmlDocument.xml";
    // Parse the xml using XMLDocument class.
     public static SomeClassParseByXMLDocument()
     {
         var X = new InformationA();
          XmlDocument doc = new XmlDocument();
         doc.Load(xmlUrl);
          XmlNode InformationBNode =  doc.SelectSingleNode("/InformationA/InformationB");
         A.School =   InformationBNode.SelectSingleNode("X").InnerText;
         A.Department =   InformationBNode.SelectSingleNode("Y").InnerText;
         XmlNode AListNode = doc.SelectSingleNode("/InformationA/listA");
         XmlNodeList ANodeList = AListNode.SelectNodes("A");
         foreach (XmlNode node in AListNode)
         {
             A aA = new A();
             aA.id = Convert.ToInt16(node.Attributes
                 .GetNamedItem("id").Value);
             aA.name = node.InnerText;
             A.Alist.Add(aA);
         }
         return A;
     }


2. By using XDocument --

        // Parse the XML using XDocument class.
        public static InformationA ParseByXDocument()
        {
            var A = new InformationA();
             XDocument doc = XDocument.Load(xmlUrl);
            XElement generalElement = doc
                    .Element("InformationA")
                    .Element("InformationB");
            A.School = generalElement.Element("X").Value;
            A.Department = generalElement.Element("Y").Value;
 
            A.Alist = (from c in doc.Descendants("A")
                           select new A()
                           {
                               id = Convert.ToInt16(c.Attribute("id").Value),
                               name = c.Value,
                                }).ToList<a>(); 
            return A;
        }
    }
}


3. By using XmlReader Class –

XmlReader xmlReader = XmlReader.Create("http://www.xxxx.net/.../.../ XmlRead.xml");
            while(xmlReader.Read())
            {
                if((xmlReader.NodeType == XmlNodeType.Element) && (xmlReader.Name == " XmlRead "))
                {
                    if(xmlReader.HasAttributes)
                        Console.WriteLine(xmlReader.GetAttribute("….") + ": " + xmlReader.GetAttribute("…"));                    
                }
            }</a>


这篇关于在c#.net中解析xml文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆