Помогите с синтаксисом XPath - PullRequest
0 голосов
/ 27 июня 2011

Я пытаюсь получить все узлы в 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>

Ответы [ 2 ]

1 голос
/ 27 июня 2011

это должно быть так:

//NewDataSet/Items

возвращает все предметы. в твоем случае должно быть

 string xpath = "//NewDataSet/Items";
0 голосов
/ 27 июня 2011

Вы забыли установить для пространства имен (http://test222.com/) значение GetItemsResponse и GetItemsResult

Полная квалификация: /dfs:myFields/dfs:dataFields/ns3:GetItemsResponse/ns3:GetItemsResult/NewDataSet/Items.

...