这里使用C#中的XML解析来将XML字符串转换为对象,并提取相应的值。
以下是一个C#示例代码:
```csharp
using System;
using System.Xml;
public class SmsInfo
{
public string OrgCode { get; set; }
public string BusinessCode { get; set; }
public string DeptCode { get; set; }
public string PersonCode { get; set; }
public string ReceInfo { get; set; }
public string SendFlag { get; set; }
public PhoneDetail PhoneDetail { get; set; }
}
public class PhoneDetail
{
public string PhoneNum { get; set; }
public string UserType { get; set; }
}
public class Program
{
public static void Main()
{
string xmlString = "<SmsInfo><orgCode>135006555530</orgCode><businessCode>7001</businessCode><deptCode>135555555550</deptCode><personCode>16307856</personCode><receInfo>来访者咔咔拜访康和财任务待审核</receInfo><sendFlag>0</sendFlag><phoneDetail><phoneNum>134654229</phoneNum><userType>0</userType></phoneDetail></SmsInfo>";
// 创建XML文档对象
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);
// 创建SmsInfo对象并提取值
SmsInfo smsInfo = new SmsInfo();
smsInfo.OrgCode = xmlDoc.SelectSingleNode("SmsInfo/orgCode")?.InnerText;
smsInfo.BusinessCode = xmlDoc.SelectSingleNode("SmsInfo/businessCode")?.InnerText;
smsInfo.DeptCode = xmlDoc.SelectSingleNode("SmsInfo/deptCode")?.InnerText;
smsInfo.PersonCode = xmlDoc.SelectSingleNode("SmsInfo/personCode")?.InnerText;
smsInfo.ReceInfo = xmlDoc.SelectSingleNode("SmsInfo/receInfo")?.InnerText;
smsInfo.SendFlag = xmlDoc.SelectSingleNode("SmsInfo/sendFlag")?.InnerText;
// 创建PhoneDetail对象并提取值
XmlNode phoneDetailNode = xmlDoc.SelectSingleNode("SmsInfo/phoneDetail");
if (phoneDetailNode != null)
{
smsInfo.PhoneDetail = new PhoneDetail();
smsInfo.PhoneDetail.PhoneNum = phoneDetailNode.SelectSingleNode("phoneNum")?.InnerText;
smsInfo.PhoneDetail.UserType = phoneDetailNode.SelectSingleNode("userType")?.InnerText;
}
// 输出提取的值
Console.WriteLine("OrgCode: " + smsInfo.OrgCode);
Console.WriteLine("BusinessCode: " + smsInfo.BusinessCode);
Console.WriteLine("DeptCode: " + smsInfo.DeptCode);
Console.WriteLine("PersonCode: " + smsInfo.PersonCode);
Console.WriteLine("ReceInfo: " + smsInfo.ReceInfo);
Console.WriteLine("SendFlag: " + smsInfo.SendFlag);
Console.WriteLine("PhoneNum: " + smsInfo.PhoneDetail?.PhoneNum);
Console.WriteLine("UserType: " + smsInfo.PhoneDetail?.UserType);
}
}
```
在上述示例中,我们定义了一个`SmsInfo`类和一个`PhoneDetail`类,分别表示XML中的`SmsInfo`和`phoneDetail`节点的数据结构。然后,我们使用`XmlDocument`类加载XML字符串,并使用`SelectSingleNode`方法提取相应节点的值,并将其赋值给对应的属性。
最后,我们输出了提取的值,你可以根据需要进一步处理或使用这些值。