C# 从XML文档C中提取标记值#
我有一个XML文件,从中只提取标记中的属性值。XML在这种结构中看起来有点像C# 从XML文档C中提取标记值#,c#,xml,xml-parsing,C#,Xml,Xml Parsing,我有一个XML文件,从中只提取标记中的属性值。XML在这种结构中看起来有点像 <customer> <customerMiddleInitial>W</customerMiddleInitial> <name> <FirstName>XXXXXXXX</FirstName> <LastName> YYYYYYYY</LastName> </name>
<customer>
<customerMiddleInitial>W</customerMiddleInitial>
<name>
<FirstName>XXXXXXXX</FirstName>
<LastName> YYYYYYYY</LastName>
</name>
<customerBirth>1983-01-01</customerBirth>
<customerWorkPhone>020 1234567</customerWorkPhone>
<customerMobilePhone>0799 1234567</customerMobilePhone>
<previousCust>0</previousCust>
<timeOnFile>10</timeOnFile>
<customerId>CUST123</customerId>
</customer>
W
XXXXXXXX
YYYYYY
1983-01-01
020 1234567
0799 1234567
0
10
卡斯特123
所以,我想提取标签之间的所有细节。预期输出应为所有客户详细信息
如何在C#中实现这一点?
任何帮助都将不胜感激
XmlDocument DOC = new XmlDocument();
DOC.Load("LoadYourXMLHere.xml");
XmlNodeList ParentNode = DOC.GetElementsByTagName("customer");
foreach (XmlNode AllNodes in ParentNode)
{
if (ParentNode == DOC.GetElementsByTagName("customerMiddleInitial"))
{
customer.Initial = AllNodes["customerMiddleInitial"].InnerText;
}
if (ParentNode == DOC.GetElementsByTagName("name"))
{
customer.FirstName= AllNodes["FirstName"].InnerText;
customer.LastName= AllNodes["LastName"].InnerText;
}
if (ParentNode == DOC.GetElementsByTagName("customerBirth"))
{
customer.Birthdate= AllNodes["customerBirth"].InnerText;
}
if (ParentNode == DOC.GetElementsByTagName("customerWorkPhone"))
{
customer.WorkPhone= AllNodes["customerWorkPhone"].InnerText;
}
if (ParentNode == DOC.GetElementsByTagName("customerMobilePhone"))
{
customer.MobilePhone = AllNodes["customerMobilePhone"].InnerText;
}
if (ParentNode == DOC.GetElementsByTagName("previousCust"))
{
customer.PreviousCust= AllNodes["previousCust"].InnerText;
}
if (ParentNode == DOC.GetElementsByTagName("timeOnFile"))
{
customer.TimeOnFile= AllNodes["timeOnFile"].InnerText;
}
if (ParentNode == DOC.GetElementsByTagName("customerId"))
{
customer.ID= AllNodes["customerId"].InnerText;
}
}
创建一个客户模型并在C#中执行上述xml解析
真诚地
蒂亚古·拉詹德兰
**如果答案有帮助,请将其标记为答案;如果答案没有帮助,请取消标记。首先,您需要看到这一点 建模时,只需使用此代码将反序列化的xml转换为对象,然后使用模型处理数据。这很简单
public static T FromXml<T>(String xml)
{
T returnedXmlClass = default(T);
try
{
using (TextReader reader = new StringReader(xml))
{
try
{
returnedXmlClass =
(T)new XmlSerializer(typeof(T)).Deserialize(reader);
}
catch (InvalidOperationException)
{
// String passed is not XML, simply return defaultXmlClass
}
}
}
catch (Exception ex)
{
}
return returnedXmlClass;
}
publicstatict FromXml(字符串xml)
{
T returnedXmlClass=默认值(T);
尝试
{
使用(TextReader=new StringReader(xml))
{
尝试
{
returnedXmlClass=
(T) 新的XmlSerializer(typeof(T))。反序列化(reader);
}
捕获(无效操作异常)
{
//传递的字符串不是XML,只需返回defaultXmlClass即可
}
}
}
捕获(例外情况除外)
{
}
returnedXmlClass;
}
和使用
var model = FromXml<customer>(yourXmlString);
var model=FromXml(yourXmlString);
如何在C#中解析XML:我想你会在上面的链接中找到答案。没有任何你在开始时遇到的代码尝试,这只是许多旧的“如何在C#中解析XML”类问题的重复。。。