将xml转换为字符串并传递给Web服务

时间:2014-10-07 07:49:04

标签: php xml string-conversion

我正在尝试读取一个xml文件并转换为一个普通的字符串。我到目前为止使用了一个在线工具stringconverter但我希望使用php实现相同的输出。我尝试了很少的东西,但没有工作

我的XML

<?xml version="1.0" encoding="UTF-8"?>
<DCRequest xmlns="http://transunion.com/dc/extsvc">
  <Authentication type="OnDemand">
    <UserId>magma_ba_user</UserId>
    <Password>Password@123</Password>
  </Authentication>
  <RequestInfo>
    <SolutionSetId>350</SolutionSetId>
    <SolutionSetVersion>5</SolutionSetVersion>
    <ExecutionMode>NewWithContext</ExecutionMode>
  </RequestInfo>
  <Fields>
  <!--Execution Environment Type U for Test and P for Production-->
    <Field key="EnvironmentType">U</Field>
    <Field key="FirstName">Venu</Field>
    <Field key="MiddleName"/>
    <Field key="LastName">R</Field>
    <Field key="DateOfBirth">08/08/1990</Field>
    <Field key="Gender">Male</Field>
    <Field key="PanNo"/>
    <Field key="ResidenceAddress1">dfgfdg</Field>
    <Field key="ResidenceAddress2">dfgdfg</Field>
    <Field key="ResidenceAddress3"/>
    <Field key="ResidenceCity">ALAPUZHA</Field>
    <Field key="ResidencePincode">676878</Field>
    <Field key="ResidenceState">KERALA</Field>
    <Field key="ResidencePhone">043525858578</Field>
    <Field key="ResidenceMobileNumber"/>
    <!--Reference Number from Magma can be their application Id-->
   <Field key="ExternalApplicationId">10080100273002</Field>

   <!--Below fields are optional. Office Addresses can be of Any type like Office,Current residence..etc-->
    <Field key="OffAddr1"/>
    <Field key="OffAddr2"/>
    <Field key="OffAddr3"/>
    <Field key="OffPincode"/>
    <Field key="OffCity"/>
    <Field key="OffState"/>
    <Field key="OffPhone"/>
    <Field key="PassportNumber"/>
    <!--Driving License Number-->
    <Field key="DLNo">ndfggsdg</Field>
    <Field key="VoterId"/>
    <!--Aadhar Id-->
    <Field key="UId"/>
    <Field key="RationCardNo"/>
  </Fields>
</DCRequest>

我希望以这种方式转换为字符串后的输出

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;DCRequest xmlns=&quot;http://transunion.com/dc/extsvc&quot;&gt;
  &lt;Authentication type=&quot;OnDemand&quot;&gt;
    &lt;UserId&gt;magma_ba_user&lt;/UserId&gt;
    &lt;Password&gt;Password@123&lt;/Password&gt;
  &lt;/Authentication&gt;
  &lt;RequestInfo&gt;
    &lt;SolutionSetId&gt;350&lt;/SolutionSetId&gt;
    &lt;SolutionSetVersion&gt;5&lt;/SolutionSetVersion&gt;
    &lt;ExecutionMode&gt;NewWithContext&lt;/ExecutionMode&gt;
  &lt;/RequestInfo&gt;
  &lt;Fields&gt;
  &lt;!--Execution Environment Type U for Test and P for Production--&gt;
    &lt;Field key=&quot;EnvironmentType&quot;&gt;U&lt;/Field&gt;
    &lt;Field key=&quot;FirstName&quot;&gt;MANJU&lt;/Field&gt;
    &lt;Field key=&quot;MiddleName&quot;/&gt;
    &lt;Field key=&quot;LastName&quot;&gt;KHOSLA&lt;/Field&gt;
    &lt;Field key=&quot;DateOfBirth&quot;&gt;01/09/1970&lt;/Field&gt;
    &lt;Field key=&quot;Gender&quot;&gt;Female&lt;/Field&gt;
    &lt;Field key=&quot;PanNo&quot;&gt;APJPK4988F&lt;/Field&gt;
    &lt;Field key=&quot;ResidenceAddress1&quot;&gt;D-71, SECTOR NO. 9, CHITRAKOOT,&lt;/Field&gt;
    &lt;Field key=&quot;ResidenceAddress2&quot;&gt;JAIPUR-IN, JAIPUR-302021&lt;/Field&gt;
    &lt;Field key=&quot;ResidenceAddress3&quot;/&gt;
    &lt;Field key=&quot;ResidenceCity&quot;&gt;ALAPUZHA&lt;/Field&gt;
  &lt;Field key=&quot;ResidencePincode&quot;&gt;302021&lt;/Field&gt;
    &lt;Field key=&quot;ResidenceState&quot;&gt;Rajasthan&lt;/Field&gt;
    &lt;Field key=&quot;ResidencePhone&quot;&gt;&lt;/Field&gt;
    &lt;Field key=&quot;ResidenceMobileNumber&quot;&gt;9001383232&lt;/Field&gt;
  &lt;!--Reference Number from Magma can be their application Id--&gt;
   &lt;Field key=&quot;ExternalApplicationId&quot;&gt;10080100273002&lt;/Field&gt;   
   &lt;!--Below fields are optional. Office Addresses can be of Any type like Office,Current residence..etc--&gt;
    &lt;Field key=&quot;OffAddr1&quot;/&gt;
    &lt;Field key=&quot;OffAddr2&quot;/&gt;
    &lt;Field key=&quot;OffAddr3&quot;/&gt;
    &lt;Field key=&quot;OffPincode&quot;/&gt;
    &lt;Field key=&quot;OffCity&quot;/&gt;
    &lt;Field key=&quot;OffState&quot;/&gt;
    &lt;Field key=&quot;OffPhone&quot;/&gt;
    &lt;Field key=&quot;PassportNumber&quot;/&gt;
  &lt;!--Driving License Number--&gt;
    &lt;Field key=&quot;DLNo&quot;&gt;ndfggsdg&lt;/Field&gt;
    &lt;Field key=&quot;VoterId&quot;/&gt;
  &lt;!--Aadhar Id--&gt;
    &lt;Field key=&quot;UId&quot;/&gt;
    &lt;Field key=&quot;RationCardNo&quot;/&gt;
  &lt;/Fields&gt;
&lt;/DCRequest&gt;

1 个答案:

答案 0 :(得分:-1)

function get_text($filename)//$filename is the complete path of xml file
{
$fp_load = @fopen("$filename", "rb");               
if ( $fp_load )
{
    while (!feof($fp_load) )
    {
        $content .= fgets($fp_load, 102400);
    }
    fclose($fp_load);
    return $content;
}
}
$xmlString = get_text($path);//$path contains complete path of xml file

使用Entities将$ xmlString更改为您的要求。