определение переменной массива в web-harvest

#arrays #variables #associative-array #webharvest

#массивы #переменные #ассоциативный-массив #webharvest

Вопрос:

Я использую Web-Harvest для извлечения некоторых данных с сайта.
Сайт получает переменную POST с именем Code и выдает данные в соответствии с ней.
Доступные коды собираются с другой страницы этого сайта.
Как я могу определить переменную, подобную массиву, для хранения тех данных, которые связаны с кодом, в переменной, подобной массиву, что позволяет мне извлекать их с помощью цикла в основной программе?
Я имею в виду что-то вроде этого:

 Data[code1]={key1=val1, key2=val2, key3=val3,...}
Data[code2]={key1=val1, key2=val2, key3=val3,...}
Data[code3]={key1=val1, key2=val2, key3=val3,...}
Data[code4]={key1=val1, key2=val2, key3=val3,...}
...
 

Ответ №1:

Вы можете использовать <script> тег и создать внутри него массив, используя BeanShell, Groovy или JavaScript. По умолчанию используется BeanShell.

Затем предоставьте ее своему скрипту с SetContextVar() помощью метода или return атрибута <script> .

Ниже приведен пример, который создает массив строк codes , а затем перебирает их с <loop> помощью .

 <?xml version="1.0" encoding="UTF-8"?>

<config>
    <script><![CDATA[
            String[] codes = new String[] {"one", "two", "three"};
            SetContextVar("codes", codes);
        ]]></script>

    <loop item="code">
        <list>
            <var name="codes" />
        </list>
        <body>
            <var name="code" />
        </body>
    </loop>
</config>
 

Подробнее об <script> этом читайте в руководстве по веб-сбору.