如何使用C#从XML获取特定的XML值?
问题描述:
我有以下XML为:如何使用C#从XML获取特定的XML值?
<Requests xmlResponse="true">
<Request response="yes" responsewait="120000" sequence="1" type="Fulfillment">
<RequestData>
<PrintControl>FTP</PrintControl>
<User>81DF</User>
<Documents>
<AddressChangeLetter>
<DocumentInfo>
<AddressChange AddressChangeId="109346" Branch="418" LastChangeDate="">
<Name>AAA NOVAK</Name>
<TaxID>123123121</TaxID>
<OldAddress1>BOX 216</OldAddress1>
<OldAddress2>NYANE 68017</OldAddress2>
<OldAddress3 />
<OldAddress4 />
<NewAddress1>P O BOX 216</NewAddress1>
<NewAddress2>CERESCO NE 68017</NewAddress2>
<NewAddress3 />
<NewAddress4 />
<DateChanged>05/08/2013</DateChanged>
<AccountInfo AcctNum="231232311" AcctStatusCodes="IX" />
</AddressChange>
</DocumentInfo>
</AddressChangeLetter>
</Documents>
</RequestData>
我希望得到的名称或正在标签“文档”的价值。由于在上面的XML中,“Document”标签下的标签是“AddressChangeLetter”,因此我想获取这个名称。我将如何做到这一点。
答
线沿线的东西......(它并不完美,但它会帮助您开始 - 谷歌,我使用的功能得到它正常工作):这是可以做到
XmlDocument xml = new XmlDocument();
xml.Load(yourPathGoesHere)
XmlNodeList addressNodes = xml.GetElementsByTagName("AddressChange");
foreach (XmlNode oneNode in addressNodes) {
myVariableToGrabNames = oneNode["Name"].InnerText;
}
答
很容易使用Linq to XML例如
var xml = ...;
var xdoc = XDocument.Parse(xml);
foreach (var e in xdoc.Descendants("Documents").Elements())
{
var name = e.Name; // AddressChangeLetter
}
'我会怎么办it.'通过使用XML解析器像[LinqToXml(http://msdn.microsoft.com/en-us/library/bb387061.aspx) – I4V 2013-05-10 10:35:56
[你尝试过什么?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Jan 2013-05-10 10:37:54
请不要请人做你的功课.. – Shaz 2013-05-10 10:38:56