Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xpath路径不工作_C#_Xml_Xpath_Xpathnavigator - Fatal编程技术网

C# Xpath路径不工作

C# Xpath路径不工作,c#,xml,xpath,xpathnavigator,C#,Xml,Xpath,Xpathnavigator,我试图通过XpathNavigator获取元素及其同级 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE document SYSTEM 'xmlschemas/domino_6_5_5.dtd'> <document xmlns='http://www.lotus.com/dxl' version='6.5' maintenanceversion='5.0'> <item name='Keywor

我试图通过XpathNavigator获取元素及其同级

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE document SYSTEM 'xmlschemas/domino_6_5_5.dtd'>
<document xmlns='http://www.lotus.com/dxl' version='6.5' maintenanceversion='5.0'>
    <item name='Keywords'><text/></item>
    <item name='Version'><number>1</number></item>
    <item name='UPDATEDISTRIBUTION'><text>1</text></item>
    <item name='$FILE' summary='true' sign='true' seal='true'>
        <object>
            <file hosttype='cdstorage' compression='none' flags='storedindoc' name='STG08828'>
                <created><datetime>20110119T230442,22+01</datetime></created>
            </file>
        </object>
    </item>
</document>
为什么这条路错了

编辑:谢谢你提示我的“名字”-错误

当我试着运行它时,我什么也得不到

XmlElement rootNode = xmlDoc.DocumentElement;
// select the file Element
String query = "//file[@name='" + name + "']";
XmlNodeList fileElement = rootNode.SelectNodes(query);
我想你想要:

//item/object/file[@name='STG08828']
或者只是:

//file[@name='STG08828']

我认为您缺少xmlns=''的名称空间

例如:

XNamespace myMs = "http://www.lotus.com/dxl";

//item/name
是一个属性而不是元素。尝试将xpath更改为
//item/object/file[@name='STG08828']
我知道我正在使用strws,但是您确定
name
(在
String query=“//file[@name=”“+name+””];
)中使用的变量大小写相同,并且没有任何空格吗?您的XML包含名称空间。看来你没有注册和使用它们。好吧,@float,我只是想消除明显的可能性。我认为Jens使用名称空间是正确的。查看
XmlNamespaceManager
类例如,查看。据我所知,C#只支持XPath 1.0。你是对的,但当我尝试获取它时,没有选择任何内容。。。我更新我的帖子。
XNamespace myMs = "http://www.lotus.com/dxl";