求c#读取xml属性值
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="终端接口XML Schema-2.0.xsd" SN="343617" License="040">
<Events>
<!--销售出库,-->
<Event Name="SalesWareHouseOut" MainAction="WareHouseOut">
<ActionMaping>
<Action Name="WareHouseOut">
<ActionData>Code</ActionData>
<ActionData>CorpOrderID</ActionData>
<ActionData>Actor</ActionData>
<ActionData>ActDate</ActionData>
</Action>
</ActionMaping>
<DataMaping>
<MetaData Name="Code" Type="string" />
<MetaData Name="CorpOrderID" Type="string" />
<MetaData Name="Actor" Type="string" />
<MetaData Name="ActDate" Type="Date" />
</DataMaping>
<DataField>
<Data Code="81143900028040251957" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900027511806124" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900027510453880" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900027509255484" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900027508057635" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900027508204343" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900027509403677" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900027510601766" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900027511950686" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
<Data Code="81143900028040405694" ReplaceCode="" CorpOrderID="138204" Actor="1" ActDate="2013-12-19 08:47:09" WrongCode="" UpperCorpOrderID="" />
</DataField>
</Event>
</Events>
</Document>
想把全部CorpOrderID的属性值读出并列表显示
[解决办法]
System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Load("e:\\1.txt");
foreach (var employee in doc.Document.Descendants("DataField").First().Descendants("Data"))
{
MessageBox.Show(employee.Attribute("CorpOrderID").Value);
}
XElement element = XElement.Load(@"c:\1.xml");
var query = element.Descendants("DataField").Descendants("Data").
Where(x => (string)x.Attribute("Code") == "81143900028040405694").FirstOrDefault();
if (query != null)
{
query.SetAttributeValue("ToCorpID", "000003202879");
}
加上保存:for (int i=1;i<6;i++)
{
XElement element = XElement.Load(@"c:"+i+".xml");
element.Descendants("DataField").Descendants("Data").ToList()
.ForEach(item => { item.SetAttributeValue("ToCorpID", "000003202879"); });
element.Save(@"c:"+i+".xml");
}
这个方法对规则文件名有用,不过我这的都是不规则的文件名呀!都是这样的:
SalesWareHouseOut_138375.xml,SalesWareHouseOut_138402.xml,SalesWareHouseOut_138404.xml,SalesWareHouseOut_138405.xml,SalesWareHouseOut_138411.xml,而且有几百个,怎么弄呀?