<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
<s:AttributeType name='text' rs:number='1'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='8' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='ID' rs:number='2' rs:basecatalog='Temp' rs:basetable='oa' rs:basecolumn='ID'
 rs:keycolumn='true' rs:hidden='true' rs:autoincrement='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row text='sdafasdf' ID='92'/>
</rs:data>
</xml>
string filename = "C:/Users/Administrator/Desktop/sdafsdfa";
        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load(filename);        XmlNamespaceManager xmlnsManager = new XmlNamespaceManager(xmldoc.NameTable);
        xmlnsManager.AddNamespace("rs", "urn:schemas-microsoft-com:rowset");        XmlNodeList nodes = xmldoc.SelectNodes("/rs:data");        Response.Write("<script>alert(" + nodes.Count.ToString() + ")</script>");        foreach (XmlNode n in nodes)
        {
            Console.WriteLine("<text>" + n.InnerText);
        }运行到XmlNodeList nodes = xmldoc.SelectNodes("/rs:data");
出System.Xml.XPath.XPathException: 需要命名空间管理器或 XsltContext。 

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-09-11 13:20:52 编辑
      

  2.   

    本帖最后由 net_lover 于 2012-09-11 13:25:45 编辑
      

  3.   

    你需要XSLT 转换,去查查资料吧
      

  4.   

    我只会照葫芦画瓢。
    改成
     XmlNodeList nodes = xmldoc.SelectNodes("//rs:data",xmlnsManager );就好了。但是我想得到 <z:row text='sdafasdf' ID='92'/>中的sdafasdf 
    用n.InnerText也没得到呢
    求高手帮帮忙!!!!
      

  5.   

    怎么取?真的不会
    还想在<z:row text='sdafasdf' ID='92'/>
    下面加入一行类似的.得怎么加呢.
      

  6.   

    sdafasdf是属性值,XmlNode.Attributes["text"].Value