2013-10-16 78 views
1

我正在使用joomla 3.1網站,php 5.3.27。我將數據存儲在通過wsdl soap web服務移植出來的ms sql server 2008 r2數據庫中。將XML從Web Service導入到XML中?

在web服務的xml中,有一個「服務」列表,每個服務都有我需要提取的「serviceid」和「servicename」節點。

<services count="9"> 
    <service> 
     <serviceid>1</serviceid> 
     <servicename>Training</servicename> 
     ... and some other nodes ... 
    </service> 
    <service> 
     <serviceid>2</serviceid> 
     <servicename>Faculty/Staff Email</servicename> 
     ... and some other nodes ... 
    </service> 
</services> 

這些serviceids和servicenames需要進入我的mvc結構中視圖的default.xml文件。現在這些值是硬編碼的。

<metadata> 
<layout title="Service" option="service"> 
    <help 
     key = "Display a service from the catalog" 
    /> 
    <message> 
     Display a service from the catalog 
    </message> 
</layout> 

<!-- Add fields to the request variables for the layout. --> 
<fields name="request"> 
    <fieldset name="request" 
     addfieldpath="/administrator/components/com_content/models/fields"> 

     <field name="id" type="modal_article" 
      label="COM_CONTENT_FIELD_SELECT_ARTICLE_LABEL" 
      required="true" 
      edit="true" 
      clear="false" 
      description="COM_CONTENT_FIELD_SELECT_ARTICLE_DESC" 
      default="36" 
     /> 
     <field name="serviceID" type="list" 
      label="Service ID" 
      required="true" 
      edit="true" 
      clear="false" 
      description="The service to display" 
     > 
      <option value="1">Training</option> 
      <option value="2">Faculty/Staff Email</option> 
      <option value="3">Email List Services</option> 
      <option value="4">Mass Email Services</option> 
      <option value="5">Email Encryption</option> 
     </field> 
    </fieldset> 
</fields> 

等等...

我在與從SOAP響應到這個其他的XML文件得到它麻煩的部分。我可以創建一個可以循環訪問數組並創建選項標籤的PHP文檔,但是從xml到php再次到xml似乎很愚蠢,再加上我仍然會嘗試將這些外部數據導入到右邊放置在這個文件中。

長時間的潛伏者,第一次海報,所以如果我已經違反協議,請原諒,我會承擔我的鞭刑的位置。讓我知道如果我一直不清楚,或者如果你需要更多的信息。提前致謝!

+0

歡迎來到SO,肖恩! – Brian

回答

0

使用XSLT在目標XML中注入源XML值。這正是XSL語言的作用。

通過這種方式,您可以將您的模板(您的案例中的default.xml)與源值分開,並且您可以在不使用任何PHP代碼的情況下對其進行更改。

PHP有很多庫來處理XSLT文件,每個文件都有自己的優點和問題。