Получение не вариантных данных из списка вариантов продукта - PullRequest
0 голосов
/ 12 февраля 2020

Я хотел бы использовать данные варианта xml с приведенным ниже разделом без каких-либо вариантов.

<Root>
<Products>
    <Product>
        <Code>1472</Code>
        <Title>Same title...</Title>
        <Desc>Same title...</Desc>
                        <Pictures><Picture>https://a5bd.jpg</Picture></Pictures>
        <Stocks>
            <Stock>
                <Quantity>5</Quantity>
                <StockCode>1152White</StockCode>
                <Attribute name="COLOR">WHITE</Attribute>
                <Attribute name="SIZE">S</Attribute>
            </Stock>
            <Stock>
                <Quantity>0</Quantity>
                <StockCode>1152White</StockCode>
                <Attribute name="COLOR">WHITE</Attribute>
                <Attribute name="SIZE">M</Attribute>
            </Stock>
        </Stocks>
    </Product>
</Products>

Шаблон, который я хочу получить, выглядит следующим образом:

<Root>
    <Products>
        <Product>
            <ProductCode>1152White-S</ProductCode>
            <Title>Same title...</Title>
            <Desc>Same title...</Desc>
                        <Picture>https://a5bd.jpg</Picture>
            <Quantity>5</Quantity>
        </Product>
        <Product>
            <ProductCode>1152White-M</ProductCode>
            <Title>Same title...</Title>
                        <Picture>https://a5bd.jpg</Picture>
            <Desc>Same title...</Desc>
            <Quantity>0</Quantity>
        </Product>
    </Products>
</Root>

Я был бы рад, если вы поделитесь своими мыслями.

$url = 'https://xxmladdress.org';
$xml = simplexml_load_file($url);

$echo = "<products>";

$list = $xml->Products->Product;

for ($i = 0; $i < count($list); $i++) {
$echo .= "<ProductCode>". $list[$i]->Stocks->Stock->StockCode ."-". $list[$i]->Stocks->Stock->Attribute->SIZE ."</ProductCode>";
$echo .= "<Title>". $list[$i]->Title ."</Title>";
$echo .= "<Desc>". $list[$i]->Desc ."</Desc>";
$echo .= "<Picture>". $list[$i]->Pictures->Picture ."</Picture>";
$echo .= "<Quantity>". $list[$i]->Stocks->Stock->Quantity ."</Quantity>";        
}

$echo .= "</products>";

header("Content-Type: text/xml");
echo $echo;

Какой метод мне следует использовать?

Я пытался изменить это здесь с помощью "str_replace": Attribute name = "SIZE"> S на этот раз следующий знак помешал мне сделать что-либо: "

...