2011-12-07 39 views
1

您好,我有我的飼料功能問題我有在XML有說明標記,裏面是HTML代碼。現在PHP將HTML標籤視爲其他xml標籤並製作更多數組。我怎樣才能阻止從HTML標籤創建數組? 例如。XML到PHP數組和HTML標籤

<description> 
    <h3>Some text</h3> 
</description> 

its out putting 

array['description'] => array['h3'] => "someText" 

PHP代碼:

public function merchant_import_wahanda(){ 
     if (!$this->session->userdata('logged_in')){ 
      redirect('admin/login'); 
     } 

     $data['pageTitle'] = 'Merchant Admin'; 
     $data['error_warning'] = ''; 
     $data['success'] = ''; 

     $xmlfile= 'http://www.wahanda.com/rss/mobdeal.xml'; 
     $xmlRaw = file_get_contents($xmlfile); 

     $this->load->library('xml'); 
     $xmlData = $this->xml->xml_parse($xmlRaw); 
     $this->load->model('admin/Deals_model', 'Deals'); 
     $this->load->model('admin/Cities_model', 'Cities'); 
     $this->load->model('admin/Partners_model', 'Partners'); 

     //Get City ID 
     foreach($xmlData["channel"]["item"] as $product){ 
      $cityName[] = $product['w:location']["@content"]; 
     } 

     $cities = array_unique($cityName); 
     foreach ($cities as $city){ 
      if(!$this->Cities->getCityByName($city)){ 
       $this->Cities->addFeedCity($city); 
      } 
     } 

     //Get Partner ID 
     foreach($xmlData["channel"]["item"] as $product){ 
      $partnerName[] = $product['w:venues']['w:venue']['w:name']; 
     } 

     $partners = array_unique($partnerName); 
     foreach ($partners as $partner){ 
      if(!$this->Partners->getPartnerByName($partner)){ 
       $this->Partners->addFeedPartner($partner); 
      } 
     } 

     foreach($xmlData["channel"]["item"] as $product){ 
      $cityID = $this->Cities->getCityByName($product['w:location']["@content"]); 
      $partnerID = $this->Partners->getPartnerByName($product['w:venues']['w:venue']['w:name']); 

      $deals[] = array(
       'dealTitle' => $product['title'], 
       'price' => $product['w:price'], 
       'image' => $product['w:hiResImageLink'], 
       'buyLink' => $product['link'], 
       'startDate' => $product['w:startDate'], 
       'endDate' => $product['w:endDate'], 
       'partner' => $partnerID['partner_id'], 
       'city' => $cityID['city_id'], 
       'description' => $product['description'], 
       'RRP' => $product['w:rrp'], 
       'discount' => $this->getDiscount($product['w:price'], $product['w:rrp']) 
      ); 
     } 
     ?><pre><?php var_dump($deals); ?></pre><?php 
     foreach($deals as $deal){ 
      $this->Deals->importWahanda($deal); 
     } 
    } 

XML描述例如:

<description> 
      <a id="Wahanda_loves" name="Wahanda_loves"></a><h3>Wahanda loves</h3> 

<p>If you&#39;re fed up of shaving and can&#39;t bear the pain of waxing then remove hair the easy way with this course of IPL hair removal. It works by using beams of light to damage the hair follicle, meaning after a course of treatment you&#39;ll be hair-free for longer. Five sessions will catch the hair in each stage of the growth cycle so your skin will stay silky-smooth and fuzz-free for longer.</p> 
<a id="What.27s_in_it_for_you.3F" name="What.27s_in_it_for_you.3F"></a><h3>What&#39;s in it for you?</h3> 


<ul> 
<li>Five IPL Sessions on <b>one</b> of the following areas: 
<ul> 
<li>Lip and Chin</li> 
<li>Bikini Line</li> 
<li>Underarm</li></ul></li></ul> 


<ul> 
<li>Location: <a href="/place/depicool-leeds/" title="place/depicool-leeds/">DepiCool</a>, Leeds</li> 
<li>Available Monday - Saturday</li> 
<li><b>Strict voucher limit of 1 per person.</b> May buy multiples as gifts</li> 
<li>You will receive an eVoucher valid for one person to print out and take with you.</li> 
<li>Voucher valid for 6 months</li> 
<li>Cannot be used in conjunction with any other offer. Subject to availability. No cash alternative</li></ul> 

<p>You&#39;ll get a snazzy pair of goggles to wear during the treatment so your eyes are protected throughout the fifteen minute procedure. DepiCool&#39;s therapists are fully qualified and consider your comfort and safety to be the most important part of the treatment process. All staff are trained to be able to answer your questions so you&#39;ll be informed at at ease at all times. </p> 
<a id="Want_to_buy_this_as_a_gift.3F" name="Want_to_buy_this_as_a_gift.3F"></a><h3>Want to buy this as a gift?</h3> 

<p>If you&#39;re feeling generous and want to buy this as a gift for someone, don&#39;t worry - the voucher won&#39;t show the price or discount of the MobDeal if you add a gift message, making it perfect for giving as a gift. All you need to do is choose how many vouchers you&#39;d like to buy at checkout so you can enter each recipient&#39;s name on the coupon, then add your message for the lucky recipient.</p></description> 
+0

顯示一些代碼 - –

+0

添加的代碼相關:) PS所有其他事情都工作得說明,因爲它不會讓你添加陣列數據庫:) –

+0

你想保留它爲「純文本」?也許你想嘗試CDATA? http://en.wikipedia.org/wiki/CDATA – Riyono

回答

0

您可以將您的HTML到CDATA,通過AGOP的建議,或編碼字符 - 使用<代替<,>代替>等。至於XML來講,他們是相同的。我會去CDATA選項,因爲你有很多行HTML,並且它更具可讀性。

<description> 
    <![CDATA[<a id="Wahanda_loves" name="Wahanda_loves"></a><h3>Wahanda loves</h3> 

    <p>If you&#39;re fed up of shaving and can&#39;t bear the pain of waxing then remove hair the easy way with this course of IPL hair removal. It works by using beams of light to damage the hair follicle, meaning after a course of treatment you&#39;ll be hair-free for longer. Five sessions will catch the hair in each stage of the growth cycle so your skin will stay silky-smooth and fuzz-free for longer.</p> 
    <a id="What.27s_in_it_for_you.3F" name="What.27s_in_it_for_you.3F"></a><h3>What&#39;s in it for you?</h3> 

    ... 

    ]]> 
</description> 
+0

有沒有在描述標籤之後添加CDATA並在用php關閉之前添加CDATA? –

0

CDATA

+0

我沒有訪問XML文檔來編輯:(如果我下載文件,它會停止自動化我想要的就像有500個描述:( –

+0

你可以嘗試使用正則表達式匹配xml元素? – greenLizard

+0

在正則表達式中的垃圾不確定如何誠實。是否有添加CDATA後描述標記和之前關閉與PHP ? –