日期:2014-05-17  浏览次数:20733 次

使用XPath查询XML文件时,多了xmlns属性后就查不到节点,这是怎么回事?
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
      <Item Id="001" />
      <Item Id="002" />
    </ItemGroup>
</Project>

查询时:
XmlNodeList list=doc.SelectNodes("/Project/ItemGroup/Item");
foreach(XmlNode node in list)
{
    string id=node.Attributes["Id"].Value;
}
取不到值的说。
于是我就将xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
这个属性去掉了,居然取到了。
但是XML文件是系统生成的。都有这个属性的嚎。
该怎么去值呢?简单点的方法呀。
这个xmlns属性是规范吗?
怎么会影响到查询呢?
求解!
本人分少,望谅解嚎。
XML XPath String

------解决方案--------------------

可能需要提供 XAttribute 类型的参数来设置它 --〉 可能需要提供 XAttribute 类型的参数来设置XNamespace