У меня есть список продуктов в формате XML, и мне нужно назначить вес нового узла для каждого продукта в зависимости от категории каждого продукта.Например:
У меня есть следующий XML:
<?xml version="1.0" encoding="utf-8"?>
<products>
<item>
<name>PRODUCT 1</name>
<category>CATEGORY 1</category>
</item>
<item>
<name>PRODUCT 2</name>
<category>CATEGORY 2</category>
</item>
<item>
<name>PRODUCT 3</name>
<category>CATEGORY 3</category>
</item>
<item>
<name>PRODUCT 4</name>
<category>CATEGORY 4</category>
</item>
<item>
<name>PRODUCT 5</name>
<category>CATEGORY 5</category>
</item>
<item>
<name>PRODUCT 6</name>
<category>CATEGORY 6</category>
</item>
<item>
<name>PRODUCT 7</name>
<category>CATEGORY 7</category>
</item>
<item>
<name>PRODUCT 8</name>
<category>CATEGORY 8</category>
</item>
</products>
Я пытался использовать этот код, используя мою логику, но не работает:
<?php
//CODE...
$weight = $xml->xpath("//item[category]");
foreach ( $weight as $value ) {
$value->weight = ($value->category=='CATEGORY 1' or $value->category=='CATEGORY 2' or $value->category=='CATEGORY 3')? 1:2 and ($value->category=='CATEGORY 4' or $value->category=='CATEGORY 5')? 7:2 and ($value->category=='CATEGORY 6' or $value->category=='CATEGORY 7')? 10:2;
}
//MORE CODE...
?>
Как вывидно, что я пытался присвоить вес "1 кг", если продукты относятся к категориям 1, 2 и 3, "7 кг", если они относятся к категориям 4 и 5, и, наконец, "10 кг", если они включеныкатегории 6 и 7, но если они не соответствуют ни одной из этих категорий, установите вес в «2 кг», чтобы получить результат, подобный этому:
<?xml version="1.0" encoding="utf-8"?>
<products>
<item>
<name>PRODUCT 1</name>
<category>CATEGORY 1</category>
<weight>1</weight>
</item>
<item>
<name>PRODUCT 2</name>
<category>CATEGORY 2</category>
<weight>1</weight>
</item>
<item>
<name>PRODUCT 3</name>
<category>CATEGORY 3</category>
<weight>1</weight>
</item>
<item>
<name>PRODUCT 4</name>
<category>CATEGORY 4</category>
<weight>7</weight>
</item>
<item>
<name>PRODUCT 5</name>
<category>CATEGORY 5</category>
<weight>7</weight>
</item>
<item>
<name>PRODUCT 6</name>
<category>CATEGORY 6</category>
<weight>10</weight>
</item>
<item>
<name>PRODUCT 7</name>
<category>CATEGORY 7</category>
<weight>10</weight>
</item>
<item>
<name>PRODUCT 8</name>
<category>CATEGORY 8</category>
<weight>2</weight>
</item>
</products>
У меня такое ощущение, что это довольно простоно моя логика не дала результатов.Любая помощь будет оценена.