Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > XML Mapper


Автор: KAMIKAZE 12.10.2011, 13:28
Имеется XML 

Код

<?xml version="1.0" encoding="UTF-8"?>
<TEST>
  <WLINKS>
    <WLINK>
      <Name>$Entry.EntryConn1</Name>
      <Source>$Entry</Source>
      <Position>135,182</Position>
      <TARGETS>
        <TARGET>
          <Name>Wrapper1</Name>
          <Location>13</Location>
        </TARGET>
           <TARGET>
          <Name>Wrapp45345345354er1</Name>
          <Location>145453</Location>
        </TARGET>
      </TARGETS>
     </WLINK>
    <WLINK>
      <Name>$Entry.EntryConn2</Name>
      <Source>$Entry</Source>
      <Position>138,216</Position>
      <TARGETS>
        <TARGET>
          <Name>Wrapper1</Name>
          <Location>11</Location>
        </TARGET>
          <TARGET>
          <Name>123123Wrapper1</Name>
          <Location>143431</Location>
        </TARGET>
          <TARGET>
          <Name>W3434rapper1</Name>
          <Location>1666666666661</Location>
        </TARGET>
      </TARGETS>
      </WLINK>   
  </WLINKS>
</TEST>


С помощью mapper'a  я хочу получить все значения  /TARGET/Name и /TARGET/Location 
Пробую так: http://img265.imageshack.us/img265/773/80761004.png
Но я получаю только первые row из WLINK, но мне нужны все.
Можно добавить лобой айтем выше по дереву, например /WLINK/Name 
Получится так: http://img833.imageshack.us/img833/686/56116139.png 
Здесь вытаскиваются все значения Name и Location, однако они в датасете,  да и поле /WLINK/Name не нужно здесь.

Как мне замапить и получить все эти поля?

Автор: KAMIKAZE 13.10.2011, 12:18
Еще проще пример.
Берем XML

Код

<?xml version="1.0"?>
<Result>
   <A>
    <B>test1</B>
    <B>test2</B>
    <B>test3</B>
   </A>
  <A>
    <B>test4</B>
    <B>test5</B>
    <B>test6</B>
  </A>
    <A>
    <B>test7</B>
    <B>test8</B>
    <B>test9</B>
   </A>
</Result>


Пытаемся замапить и в итоге получаем

http://imageshack.us/photo/my-images/716/79491511.png/


Как заставить mapper пройтись по всем <B>, а не только по первым?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)