为了账号安全,请及时绑定邮箱和手机立即绑定

在 PHP 中将 XML 转换为对象更新某个节点的值并再次将对象转换为 XML?

在 PHP 中将 XML 转换为对象更新某个节点的值并再次将对象转换为 XML?

PHP
慕妹3242003 2023-03-26 14:18:43
我正在处理多个 API。请找到一些步骤。Step1 我得到了第一个 API 的结果如下。 假设我收到了以下回复。     $xml = '<soap:Envelope     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:xsd="http://www.w3.org/2001/XMLSchema">      <soap:Body>        <Response          xmlns="http://schemas.martin-group.com/test">          <Result>            <![CDATA[            <AccountInfo><CusAccount Action="Add" AccountID="2046369" DesiredCycleID="0" Name=""              Corporation="" Cycle=""><AccountType><CusAccountType AccountTypeID="100001" Version="1"              AccountTypeCode="BUS " AccountType="Business" MonthlyBillingMethod="P" /></AccountType>              <InvoiceFormat><ICInvoiceFormat InvoiceFormatID="1" UserID="10490655"              AddressAdjustmentY="0" AddressWidth="3500"/></InvoiceFormat></CusAccount>              </AccountInfo>]]>         </Result>       </Response>    </soap:Body>   </soap:Envelope>';    第 2 步我已将 XML 转换为 XML 对象。     $soap = simplexml_load_string($xml);     $soap->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');     $object = $soap->xpath('//soap:Envelope/soap:Body')[0]->Response;     $cdata = $object->Result;     $cdata_as_xml = simplexml_load_string($cdata);第 3 步我已经更新了一些节点的值,如下所示。    1. $cdata_as_xml->CusAccount['Action'] = 'Edit'    2. $cdata_as_xml->CusAccount['DesiredCycleID'] = '1'    3. $cdata_as_xml->CusAccount->AccountType->CusAccountType['AccountTypeID'] = '1000023'如何获得纯 XML 而不是 XML 对象?对此的任何帮助将不胜感激。
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

用于asXML()将 XML 保存到文件中

如果不指定文件名,该方法将返回一个字符串,其中包含元素的格式正确的 XML。


查看完整回答
反对 回复 2023-03-26
  • 1 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信