Помогите с синтаксисом XPath

Я пытаюсь получить все узлы в NewDataset для всех узлов «Элементы». Не могли бы вы помочь.

Вот мой синтаксис 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>

person nav100    schedule 27.06.2011    source источник


Ответы (2)


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

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

person Kirill Polishchuk    schedule 27.06.2011

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

//NewDataSet/Items

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

 string xpath = "//NewDataSet/Items";
person bingjie2680    schedule 27.06.2011
comment
Я почему-то не получаю товары. Верен ли мой путь? пространство имен и т. д. Пожалуйста, дайте мне знать. - person nav100; 27.06.2011
comment
хорошо ли вы управляли пространством имен. пространство имен для элементов должно быть пустым... потому что у вас есть ‹NewDataSet xmlns=›. - person bingjie2680; 27.06.2011