例子:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsdd="http://www.example.com/2009" xsdd:attr="yes" abc="abc">
</root>
使用XPath,怎么获取xsdd:attr属性的值?
我是这样写的:String expression="/root/@xsdd:attr";但是这样不可以,取不到怎么回事?我应该怎么写呢?

解决方案 »

  1.   

    ,需要对命名空间一一定义:
                string xml = "";
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.LoadXml(xml);
                XmlNamespaceManager xnm = new XmlNamespaceManager(xmldoc.NameTable);
                xnm.AddNamespace("SOAP-ENV","http://schemas.xmlsoap.org/soap/envelope/");
                xnm.AddNamespace("Mo","http://www.monternet.com/dsmp/schemas/");
                xmldoc.SelectNodes("//SOAP-ENV:Header/Mo:TransationID",xnm);//注意,就算是用默认命名空间的节点,也要为命名空间定义一个名字,并使用这个名字。我的新书刚上架,欢迎订购:
    《搜索引擎零距离—基于Ruby+Java搜索引擎原理与实现》 清华出版社。
    http://www.huachu.com.cn/itbook/itbookinfo.asp?lbbh=10105450