Я пытаюсь получить все узлы в NewDataset все узлы 'Items'. Не могли бы вы помочь.
Вот мой синтаксис xml и Xpath.
string xpath = "/dfs:myFields/dfs:dataFields/GetItemsResponse/getItemsResult/NewDataset"; XPathNodeIterator clItems = this.DataSources[listDS.GetItems].CreateNavigator().Select(xpath, NamespaceManager);
XML:
<dfs:myFields xmlns:dfs="http://schemas.microsoft.com/office/infopath/2003/dataFormSolution" xmlns:ns3="http://test222.com/" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-11-22T16:05:55" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <dfs:queryFields> <ns3:GetItems> <ns3:list1>test</ns3:list1> </ns3:GetItems> </dfs:queryFields> <dfs:dataFields> <GetItemsResponse xmlns="http://test222.com/"> <GetItemsResult> <NewDataSet xmlns=""> <Items> <Clist>list1</Clist> <Title>test1</Title> </Items> <Items> <Clist>list2</Clist> <Title>test2</Title> </Items> </NewDataSet> </GetItemsResult> </GetItemsResponse> </dfs:dataFields> </dfs:myFields>
это должно быть так:
//NewDataSet/Items
возвращает все предметы. в твоем случае должно быть
string xpath = "//NewDataSet/Items";
Вы забыли установить для пространства имен (http://test222.com/) значение GetItemsResponse и GetItemsResult
http://test222.com/
GetItemsResponse
GetItemsResult
Полная квалификация: /dfs:myFields/dfs:dataFields/ns3:GetItemsResponse/ns3:GetItemsResult/NewDataSet/Items.
/dfs:myFields/dfs:dataFields/ns3:GetItemsResponse/ns3:GetItemsResult/NewDataSet/Items