将Web服务中的XML导入XML?

时间:2013-10-16 18:35:02

标签: php xml web-services soap

我正在使用joomla 3.1 site,php 5.3.27。我有数据存储在ms sql server 2008 r2数据库中,该数据库通过wsdl soap web服务移植。

在来自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似乎很傻,而且我仍然会遇到尝试将此外部数据导入右侧的相同问题放在这个档案中。

长期潜伏,第一次发布海报,所以如果我违反了协议,请原谅,我将担任我的鞭挞位置。如果我不清楚或者您是否需要更多信息,请告诉我。提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用XSLT在目标XML中注入源XML值。这正是XSL语言的用途。

这样,您可以将模板(在您的情况下为default.xml)与源值分开,并且可以在没有任何PHP代码的情况下更改它。

PHP有许多库来处理XSLT文件,每个文件都有自己的优点和问题。