为什么找不到xml中的节点?解决方案
为什么找不到xml中的节点?
我的XML文件是.txt文件,里面格式是XML的,用以下方法找不到节点SuccessfulValidations.
请高手帮帮忙,我想取节点SuccessfulValidations下的所有子节点,从而取所有子点点下的属性.
------解决思路----------------------
扩展名改成.xml试过吗
------解决思路----------------------
参考:

http://www.cnblogs.com/insus/p/4308740.html
------解决思路----------------------
有namespace,下面是用System.Xml.Linq来获取的
------解决思路----------------------
要加上路径啊
doc.SelectSingleNode("ComputerBuildReportAckResponse\ComputerBuildReportAcks\ComputerBuildReportAck\SuccessfulValidations");
我的XML文件是.txt文件,里面格式是XML的,用以下方法找不到节点SuccessfulValidations.
XmlDocument doc = new XmlDocument();
doc.Load(txtFile);
XmlNode node = doc.SelectSingleNode("SuccessfulValidations");
请高手帮帮忙,我想取节点SuccessfulValidations下的所有子节点,从而取所有子点点下的属性.
------解决思路----------------------
扩展名改成.xml试过吗
------解决思路----------------------
参考:
http://www.cnblogs.com/insus/p/4308740.html
------解决思路----------------------
有namespace,下面是用System.Xml.Linq来获取的
string xml = @"
<ComputerBuildReportAckResponse xmlns=""http://schemas.ms.it.oem/digitaldistribution/2010/10"">
<ComputerBuildReportAcks>
<ComputerBuildReportAck>
<MSReportUniqueID>f5de0a5c-3810-4128-b1c1-acfaa470b87d</MSReportUniqueID>
<CustomerReportUniqueID>c7b1274f-feaf-4e42-bee2-4575ccd5f288</CustomerReportUniqueID>
<MSReceivedDateUTC>2014-06-23T00:00:00+0000</MSReceivedDateUTC>
<SoldToCustomerID>200001208</SoldToCustomerID>
<ReceivedFromCustomerID>200001208</ReceivedFromCustomerID>
<CBRAckFileTotal>1</CBRAckFileTotal>
<CBRAckFileNumber>1</CBRAckFileNumber>
<SuccessfulValidations>
<SuccessfulValidationResult>
<ProductKeyID>2621320037148</ProductKeyID>
<HardwareHash>JgAAAAAAAAABAAAAAQAAAAAAAgABAAEAJJSYSHpenIh+VY/74KU=</HardwareHash>
</SuccessfulValidationResult>
<SuccessfulValidationResult>
<ProductKeyID>2621320037152</ProductKeyID>
<HardwareHash>JgAAAAAAAAABAAAAAQAAAAAAAgABAAEAJJSCHNjbCgtQDhPT4KU=</HardwareHash>
</SuccessfulValidationResult>
<SuccessfulValidationResult>
<ProductKeyID>2621320037156</ProductKeyID>
<HardwareHash>JgAAAAAAAAABAAAAAQAAAAAAAgABAAEAJJSMD8bXnIj7fC7C4KU=</HardwareHash>
</SuccessfulValidationResult>
<SuccessfulValidationResult>
<ProductKeyID>2621320037157</ProductKeyID>
<HardwareHash>JgAAAAAAAAABAAAAAQAAAAAAAgABAAEAJJSGtmLhpBWtcf6E4KU=</HardwareHash>
</SuccessfulValidationResult>
</SuccessfulValidations>
</ComputerBuildReportAck>
</ComputerBuildReportAcks>
</ComputerBuildReportAckResponse>";
XElement root = XElement.Parse(xml);
var nsp = root.GetDefaultNamespace().NamespaceName;
var ele = root.Element(XName.Get("ComputerBuildReportAcks", nsp))
.Element(XName.Get("ComputerBuildReportAck", nsp))
.Element(XName.Get("SuccessfulValidations", nsp));
------解决思路----------------------
要加上路径啊
doc.SelectSingleNode("ComputerBuildReportAckResponse\ComputerBuildReportAcks\ComputerBuildReportAck\SuccessfulValidations");