employee.cs实体类
public class employee
{
public string lastName { get ; set ; }
public string firstName { get ; set ; }
public string city { get ; set ; }
public string state { get ; set ; }
}
Program.cs
class Program
{
static void Main(string [] args)
{
List<employee> employees = new List<employee>()
{
new employee() {firstName="John" ,lastName="Smith" ,city="哈佛镇" ,state="PA" },
new employee() {firstName="Jane" ,lastName="Doe" ,city="尤因" ,state="NJ" },
new employee() {firstName="Jack" ,lastName="Jones" ,city="华盛顿堡" ,state="PA" },
};
var XMLEmployees = new XElement("Query" , from e in employees
select new XElement("Employee" ,
new XElement("FirstName" , e.firstName),
new XElement("LastName" , e.lastName),
new XElement("City" , e.city),
new XElement("State" , e.state)
)
);
Console.WriteLine(XMLEmployees);
Console.ReadKey();
}
}
运行结果如图:
LINQ解析XML文件
Program.cs类:
class Initialization
{
XDocument doc = XDocument.Load("services.xml" );
public void logic ()
{
var services = from element in doc.Descendants("item" )
select new
{
Item = element.Element("type" ).Value,
};
foreach (var element in services)
{
Console.WriteLine(element.Item);
}
Console.WriteLine();
Console.WriteLine("从上面的列表中输入。要退出,键入exit" );
do
{
string inputservice2 = Console.ReadLine();
if (!"exit" .Equals(inputservice2))
{
var selectedService2 = from r in doc.Descendants("item" ).Where(r => inputservice2 == r.Element("type" ).Value)
select new
{
wsdl = r.Element("wsdl" ).Value,
};
if (!selectedService2.Any().Equals(false ))
{
foreach (var r in selectedService2)
{
Console.WriteLine(r.wsdl);
}
}
else
{
Console.WriteLine("你已经从上面的列表中输入不正确的服务类型" );
}
}
else
{
break ;
}
}
while (true );
}
}
class Program
{
static void Main(string [] args)
{
Initialization init = new Initialization();
init.logic();
}
}
services.xml
<?xml version="1.0" encoding="utf-8"?>
<endpoints >
<item >
<type > oper</type >
<name > 工人(操作者)1</name >
<address > http://service.com:8007/oper1/MBroker.svc</address >
<wsdl > http://service.com:8007/oper1/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > oper</type >
<name > 工人(操作者)2</name >
<address > http://service.com:8007/oper2/MBroker.svc</address >
<wsdl > http://service.com:8007/oper2/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > oper</type >
<name > 工人(操作者)3</name >
<address > http://service.com:8009/oper3/MBroker.svc</address >
<wsdl > http://service.com:8009/oper3/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > oper</type >
<name > 工人(操作者)4</name >
<address > http://service.com:8009/oper4/MBroker.svc</address >
<wsdl > http://service.com:8009/oper4/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > work</type >
<name > 工作1</name >
<address > http://service.com:8059/work1/MBroker.svc</address >
<wsdl > http://service.com:8059/work1/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > work</type >
<name > 工作2</name >
<address > http://service.com:8059/work2/MBroker.svc</address >
<wsdl > http://service.com:8059/work2/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > work</type >
<name > 工作3</name >
<address > http://service.com:8059/work3/MBroker.svc</address >
<wsdl > http://service.com:8059/work3/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > work</type >
<name > 工作4</name >
<address > http://service.com:8059/work4/MBroker.svc</address >
<wsdl > http://service.com:8059/work4/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > work</type >
<name > 工作5</name >
<address > http://192.168.0.2:8985/MBroker.svc</address >
<wsdl > http://192.168.0.2:8985/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > false</enabled >
</item >
<item >
<type > work</type >
<name > 工作6</name >
<address > http://192.168.0.2:1234/MBroker.svc</address >
<wsdl > http://192.168.0.2:1234/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > false</enabled >
</item >
<item >
<type > work</type >
<name > 工人(河畔切尔内)</name >
<address > http://192.168.0.3/MBroker_webarm_test/MBroker.svc</address >
<wsdl > http://192.168.0.3/MBroker_webarm_test/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > false</enabled >
</item >
<item >
<type > edu</type >
<name > 教育</name >
<address > http://service.com:8156/edu1/MBroker.svc</address >
<wsdl > http://service.com:8156/edu1/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > false</enabled >
</item >
<item >
<type > edu</type >
<name > 教育 2</name >
<address > http://service.com:8156/edu2/MBroker.svc</address >
<wsdl > http://service.com:8156/edu2/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > test</type >
<name > 测试</name >
<address > http://service.com:8217/test1/MBroker.svc</address >
<wsdl > http://service.com:8217/test1/MBroker.svc?wsdl</wsdl >
<primary > true</primary >
<enabled > true</enabled >
</item >
<item >
<type > dev</type >
<name > 设计 (1)</name >
<address > http://dev.service.com:8251/dev1/MBroker.svc</address >
<wsdl > http://dev.service.com:8251/dev1/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > dev</type >
<name > 发展(卡马河畔切尔尼)</name >
<address > http://192.168.0.1:80/MBroker/MBroker.svc</address >
<wsdl > http://192.168.0.1:80/MBroker/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > false</enabled >
</item >
<item >
<type > mbrokertestpool</type >
<name > 试验池</name >
<address > http://192.168.0.4/MBroker/MBroker.svc</address >
<wsdl > http://192.168.0.4/MBroker/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > beta</type >
<name > Бета</name >
<address > http://service.com:4321/MBroker.svc</address >
<wsdl > http://service.com:4321/MBroker.svc?wsdl</wsdl >
<primary > true</primary >
<enabled > true</enabled >
</item >
<item >
<type > service</type >
<name > Сервисный 1</name >
<address > http://service.com:1111/services1/MBroker.svc</address >
<wsdl > http://service.com:1111/services1/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > servicedev</type >
<name > 服务(发展)</name >
<address > http://service.com:1111/services_dev1/MBroker.svc</address >
<wsdl > http://service.com:1111/services_dev1/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > servicetest</type >
<name > 服务(测试)</name >
<address > http://service.com:1111/services_test1/MBroker.svc</address >
<wsdl > http://service.com:1111/services_test1/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > servicepay</type >
<name > 服务(支付)</name >
<address > http://service.com:1111/services_pay1/MBroker.svc</address >
<wsdl > http://service.com:1111/services_pay1/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
<item >
<type > fbroker</type >
<name > 文件经纪人</name >
<address > http://service.com:6549/fbroker1/MBroker/MBroker.svc</address >
<wsdl > http://service.com:6549/fbroker1/MBroker/MBroker.svc?wsdl</wsdl >
<primary > true</primary >
<enabled > true</enabled >
</item >
<item >
<type > fbrokerdev</type >
<name > 文件经纪人(发展)</name >
<address > http://service.com:5555/MBroker/MBroker.svc</address >
<wsdl > http://service.com:5555/MBroker/MBroker.svc?wsdl</wsdl >
<primary > true</primary >
<enabled > true</enabled >
</item >
<item >
<type > mbrokertestpool</type >
<name > 试验池</name >
<address > http://192.168.0.5/MBroker/MBroker.svc</address >
<wsdl > http://192.168.0.5/MBroker/MBroker.svc?wsdl</wsdl >
<primary > false</primary >
<enabled > true</enabled >
</item >
</endpoints >
运行结果如图:
Orderquery.cs实体类:
public class Orderquery
{
public string return_code { get ; set ; }
public string return_msg { get ; set ; }
public string appid { get ; set ; }
public string mch_id { get ; set ; }
public string device_info { get ; set ; }
public string nonce_str { get ; set ; }
public string sign { get ; set ; }
public string result_code { get ; set ; }
public string openid { get ; set ; }
public string is_subscribe { get ; set ; }
public string trade_type { get ; set ; }
public string bank_type { get ; set ; }
public string total_fee { get ; set ; }
public string fee_type { get ; set ; }
public string transaction_id { get ; set ; }
public string out_trade_no { get ; set ; }
public string attach { get ; set ; }
public string time_end { get ; set ; }
public string trade_state { get ; set ; }
}
Orderquery.xml
<xml >
<return_code > <![CDATA[SUCCESS]]> </return_code >
<return_msg > <![CDATA[OK]]> </return_msg >
<appid > <![CDATA[wx2421b1c4370ec43b]]> </appid >
<mch_id > <![CDATA[10000100]]> </mch_id >
<device_info > <![CDATA[1000]]> </device_info >
<nonce_str > <![CDATA[TN55wO9Pba5yENl8]]> </nonce_str >
<sign > <![CDATA[BDF0099C15FF7BC6B1585FBB110AB635]]> </sign >
<result_code > <![CDATA[SUCCESS]]> </result_code >
<openid > <![CDATA[oUpF8uN95-Ptaags6E_roPHg7AG0]]> </openid >
<is_subscribe > <![CDATA[Y]]> </is_subscribe >
<trade_type > <![CDATA[MICROPAY]]> </trade_type >
<bank_type > <![CDATA[CCB_DEBIT]]> </bank_type >
<total_fee > 1</total_fee >
<fee_type > <![CDATA[CNY]]> </fee_type >
<transaction_id > <![CDATA[1008450740201411110005820873]]> </transaction_id >
<out_trade_no > <![CDATA[1415757673]]> </out_trade_no >
<attach > <![CDATA[订单额外描述]]> </attach >
<time_end > <![CDATA[20141111170043]]> </time_end >
<trade_state > <![CDATA[SUCCESS]]> </trade_state >
</xml >
Program.cs
using System
using System.Collections .Generic
using System.Data
using System.Linq
using System.Reflection
using System.Text
using System.Threading .Tasks
using System.Xml
using System.Xml .Linq
using XmlTest.Model
namespace XmlTest
{
class Program
{
static void Main(string[] args)
{
XDocument xmlDocument = XDocument.Load (Environment.CurrentDirectory + "/unifiedorder.xml" )
XElement xmlContact = xmlDocument.Element ("xml" )
Unifiedorder order = new Unifiedorder()
order.appid = xmlContact.Element ("appid" ).Value
order.attach = xmlContact.Element ("attach" ).Value
order.body = xmlContact.Element ("body" ).Value
order.detail = xmlContact.Element ("detail" ).Value
order.mch _id = xmlContact.Element ("mch_id" ).Value
order.nonce _str = xmlContact.Element ("nonce_str" ).Value
order.notify _url = xmlContact.Element ("notify_url" ).Value
order.openid = xmlContact.Element ("openid" ).Value
order.out _trade_no = xmlContact.Element ("out_trade_no" ).Value
order.sign = xmlContact.Element ("sign" ).Value
Console.WriteLine (getProperties(order))
Console.WriteLine ("----------------------------------------------------" )
string content = xmlDocument.ToString ()
XDocument doc = XDocument.Parse (content)
Unifiedorder order2 = new Unifiedorder()
order2.appid = xmlContact.Element ("appid" ).Value
order2.attach = xmlContact.Element ("attach" ).Value
order2.body = xmlContact.Element ("body" ).Value
order2.detail = xmlContact.Element ("detail" ).Value
order2.mch _id = xmlContact.Element ("mch_id" ).Value
order2.nonce _str = xmlContact.Element ("nonce_str" ).Value
order2.notify _url = xmlContact.Element ("notify_url" ).Value
order2.openid = xmlContact.Element ("openid" ).Value
order2.out _trade_no = xmlContact.Element ("out_trade_no" ).Value
order2.sign = xmlContact.Element ("sign" ).Value
Console.WriteLine (getProperties(order2))
Console.ReadKey ()
}
public static string getProperties<T>(T t)
{
string tStr = string.Empty
if (t == null)
{
return tStr
}
PropertyInfo[] properties = t.GetType ().GetProperties (BindingFlags.Instance | BindingFlags.Public )
if (properties.Length <= 0 )
{
return tStr
}
foreach (PropertyInfo item in properties)
{
string name = item.Name
object value = item.GetValue (t, null)
if (item.PropertyType .IsValueType || item.PropertyType .Name .StartsWith ("String" ))
{
tStr += string.Format ("{0}:{1}\r\n" , name, value)
}
else
{
getProperties(value)
}
}
return tStr
}
}
}
运行结果如图: