#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>
этом читайте в руководстве по веб-сбору.