我的C#代码返回xml文档中的第一个电话号码,无论其类型如何。
但是要求是我的C#代码应仅以某个顺序根据xml文档中找到的类型返回一个电话号码。
我在下面发布的xml文档代码中将看到4种电话号码。
按类型显示电话号码的条件如下:
1.在xml中检查Phone Current ="true"。之后,显示电话号码,其中Type Word ="HOME"第一。如果找不到此类型,请查找Type Word ="CELL"并显示它。如果未找到,则查找Type Word ="WORK"并显示它。如果找不到上述所有类型,请查找Type Word ="FAX"并显示传真号码。
XML格式 文件文件
C#代码
但是要求是我的C#代码应仅以某个顺序根据xml文档中找到的类型返回一个电话号码。
我在下面发布的xml文档代码中将看到4种电话号码。
按类型显示电话号码的条件如下:
1.在xml中检查Phone Current ="true"。之后,显示电话号码,其中Type Word ="HOME"第一。如果找不到此类型,请查找Type Word ="CELL"并显示它。如果未找到,则查找Type Word ="WORK"并显示它。如果找不到上述所有类型,请查找Type Word ="FAX"并显示传真号码。
XML格式 文件文件
C#:
<?xml version="1.0" encoding="UTF-8"?>
< Integration>
<Party ID="1">
<Phone>
<Type Word="WORK">Work</Type>
<Number>218-222-2222</Number>
</Phone>
<Phone Current="true">
<Type Word="FAX">Fax</Type>
<Number>218-777-7777</Number>
</Phone>
<Phone>
<Type Word="HOME">Home</Type>
<Number>218-333-3333</Number>
</Phone>
<Phone>
<Type Word="CELL">Cell</Type>
<Number>218-555-5555</Number>
</Phone>
<Phone Current="true">
<Type Word="CELL">Cell</Type>
<Number>218-666-6666</Number>
</Phone>
<Phone Current="true">
<Type Word="HOME">Home</Type>
<Number>218-300-0011</Number>
</Phone>
<Phone Current="true">
<Type Word="WORK">Work</Type>
<Number>218-111-0000</Number>
</Phone>
<Phone>
<Type Word="FAX">Fax</Type>
<Number>218-000-9999</Number>
</Phone>
< /Integration>
C#代码
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace Msc.Integration.Mncis.Service.v4
{
class InsertUpdateCase : CamperUpdates
{
public void ProcessInsertUpdateCase(ref Msc.Integration.MessageBroker.Library.v4.Broker aobjBroker, ref System.Xml.XmlDocument aobjXmlInputDoc, ref Microsoft.VisualBasic.Collection aobjInstantiatedObjectsCollection, XmlNode aobjxmNotificationEventNode)
/// <summary>
/// </summary>
/// <param name="objxmlBasePartyNode"></param>
/// <param name="objxmlCasePartyNode"></param>
/// <param name="objxmlBasePartyAddressNode"></param>
/// <param name="objCaseParty"></param>
protected void GetParty(ref XmlNode objxmlBasePartyNode, XmlNode objxmlCasePartyNode, ref XmlNode objxmlBasePartyAddressNode, ref ConservatorService.CaseParty objCaseParty, string astrDescription)
{
objCaseParty.PartyId = objxmlBasePartyNode.SelectSingleNode("@ID").InnerText;
objCaseParty.PartyType = (ConservatorService.MncisPartyTypes)Enum.Parse(typeof(ConservatorService.MncisPartyTypes), astrDescription);
Boolean blnPhoneFound = false;
XmlNode objxmlPhoneNode = objxmlBasePartyNode.SelectSingleNode("电话[@ Current ='true']");
if (objxmlPhoneNode != null)
{
objCaseParty.Phone = new ConservatorService.Phone();
if (objxmlPhoneNode.SelectSingleNode("Type").InnerText == "Home")
{
objCaseParty.Phone.Type = ConservatorService.PhoneNumberTypes.Home;
blnPhoneFound = 真正;
}
else //Cell
{
if (objxmlPhoneNode.SelectSingleNode("Type").InnerText == "Cell")
{
objCaseParty.Phone.Type = ConservatorService.PhoneNumberTypes.Cell;
blnPhoneFound = 真正;
}
else //Work
{
if (objxmlPhoneNode.SelectSingleNode("Type").InnerText == "Work")
{
objCaseParty.Phone.Type = ConservatorService.PhoneNumberTypes.Work;
blnPhoneFound = 真正;
}
else //Fax
{
if (objxmlPhoneNode.SelectSingleNode("Type").InnerText == "Fax")
{
objCaseParty.Phone.Type = ConservatorService.PhoneNumberTypes.Fax;
blnPhoneFound = 真正;
}
} //Fax
} //Work
} // 细胞
if (blnPhoneFound)
{
if (objxmlPhoneNode.SelectSingleNode("Extension") != null)
{
string strExtension = objxmlPhoneNode.SelectSingleNode("Extension").InnerText;
objCaseParty.Phone.Extention = strExtension;
}
if (objxmlPhoneNode.SelectSingleNode("Number") != null)
{
string strNumber = objxmlPhoneNode.SelectSingleNode("Number").InnerText;
objCaseParty.Phone.Number = strNumber;
}
}
} //Phone Current
}
}
}