亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

foreach 循環創建一個 xml 字符串

foreach 循環創建一個 xml 字符串

PHP
LEATH 2022-01-08 17:34:02
我需要從帶有數據的數組創建一個 xml 提要,所以我使用 foreach 循環來創建它,但是當我 print_r 結果時,唯一打印出來的部分是 foreach 循環開始之前的部分,我在外面測試了數組它有數據并且正確顯示<PriceHeader>                          <version>1.5.1</version>                        </PriceHeader>';                        foreach($sorted_data as $data){                         '<Price>                            <itemIdentifier>                              <sku>'.$data["SKU"].'</sku>                            </itemIdentifier>                            <pricingList>                                <pricing>                                    <currentPrice>                                        <value currency="USD" amount='.$data["Price"].'></value>                                    </currentPrice>                                </pricing>                            </pricingList>                        </Price>';                        }                         '</PriceFeed>';如果我 print_r 那個 var,我得到的唯一輸出是 1.5.1,但是檢查 chrome 中的元素顯示它也創建了 html 結構,直到循環開始的地方......
查看完整描述

2 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

您可以SimpleXMLElement在 PHP 中使用。欲了解更多信息,您可以訪問PHP.net


此外,如果您想在瀏覽器中查看您的 XML,您可以使用htmlspecialchars帶有 echo 的函數。


我試圖更改您的代碼作為示例。


我希望它對你有幫助。


有一個很好的編碼:)


<?php

$string = "";

$string .="<PriceFeed>

<PriceHeader>

                          <version>1.5.1</version>

                        </PriceHeader>";

                        foreach($sorted_data as $data){


                        $string.= "<Price>

                            <itemIdentifier>

                              <sku>".$data["SKU"]."</sku>

                            </itemIdentifier>

                            <pricingList>

                                <pricing>

                                    <currentPrice>

                                        <value currency=\"USD\" amount=\"".$data["Price"]."\"></value>

                                    </currentPrice>

                                </pricing>

                            </pricingList>

                        </Price>";

                        }

                        $string.= "</PriceFeed>";




$xml = new SimpleXMLElement($string);

$output = $xml->asXML();


echo "<pre>";

echo htmlspecialchars($output);

echo "</pre>";

?>


查看完整回答
反對 回復 2022-01-08
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

我通過使用 XMLwriter 創建 xml 字符串來修復它,以下是代碼的結束方式:


$xw = xmlwriter_open_memory();

xmlwriter_set_indent($xw, 1);

$res = xmlwriter_set_indent_string($xw, ' ');


xmlwriter_start_document($w, '1.0', 'UTF-8');


xmlwriter_start_element($xw, 'PriceFeed');

xmlwriter_start_attribute($xw, 'xmlns');

xmlwriter_text($xw, 'http://walmart.com/');

xmlwriter_end_attribute($xw);


xmlwriter_start_element($xw, 'PriceHeader');

xmlwriter_start_element($xw, 'version');

xmlwriter_text($xw, '1.5.1');

xmlwriter_end_element($xw);

xmlwriter_end_element($xw);


foreach($sorted_data as $data){

    xmlwriter_start_element($xw, 'Price');

    xmlwriter_start_element($xw, 'itemIdentifier');

    xmlwriter_start_element($xw, 'sku');

    xmlwriter_text($xw, $data["SKU"]);

    xmlwriter_end_element($xw);

    xmlwriter_end_element($xw);

    xmlwriter_start_element($xw, 'pricingList');

    xmlwriter_start_element($xw, 'pricing');

    xmlwriter_start_element($xw, 'currentPrice');

    xmlwriter_start_element($xw, 'value');

    xmlwriter_start_attribute($xw, 'currency');

    xmlwriter_text($xw, 'USD');

    xmlwriter_start_attribute($xw, 'amount');

    xmlwriter_text($xw, $data['Price']);

    xmlwriter_end_attribute($xw);

    xmlwriter_end_element($xw);

    xmlwriter_end_element($xw);

    xmlwriter_end_element($xw);

    xmlwriter_end_element($xw);

    xmlwriter_end_element($xw);

    xmlwriter_end_element($xw);

}


xmlwriter_end_document($xw);


echo xmlwriter_output_memory($xw);


查看完整回答
反對 回復 2022-01-08
  • 2 回答
  • 0 關注
  • 205 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號