在c#.net中解析xml文件 [英] Parsing xml file in c#.net
本文介绍了在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屋!
查看全文