我试图访问网络服务上的某个方法,该方法应该返回“客户ID”'当提交以下格式的XML文档时:
<?xml version="1.0"?>
<Customers>
<Customer prefix="ECON">
<Property Name="First Name" Value="test"/>
<Property Name="Surname" Value="user"/>
<Property Name="Company" Value="company"/>
<Property Name="Telephone" Value="123456"/>
</Customer>
</Customers>
我正在创建这样的XML文档:
try {
// a new dom object, make tidy //
$dom = new domDocument;
$dom->formatOutput = true;
// create the root and simple xml elements //
$root = $dom->appendChild($dom->createElement( "Customers" ));
$sxe = simplexml_import_dom( $dom );
// add the customer node with prefix //
$customer = $sxe->addchild("Customer");
$customer->addAttribute("prefix", "ECON");
// add first name element //
$firstname = $customer->addChild("Property");
$firstname->addAttribute("Name", "Title");
$firstname->addAttribute("Value", $first_name);
// add surname element //
$surname = $customer->addChild("Property");
$surname->addAttribute("Name", "Surname");
$surname->addAttribute("Value", $last_name);
// add company element //
$company = $customer->addChild("Property");
$company->addAttribute("Name", "Postcode");
$company->addAttribute("Value", $company_name);
// add telephone element //
$phone = $customer->addChild("Property");
$phone->addAttribute("Name", "Telephone");
$phone->addAttribute("Value", $telephone);
}
catch( Exception $e )
{
echo $e->getMessage();
}
使用以前的方法进行身份验证,将其提交给方法,如下所示:
$result = $client2->call('InsertCustomer', array('AuthenticationString' => $authenticate['AuthenticateUserResult'], 'Customers' => $sxe->asXML()));
但是它不断地将可怕的&#39; Object引用设置为未设置为对象的实例&#39;错误,我认为我需要以不同的方式提交XML以考虑基于.NET的服务,但没有多少谷歌搜索指向我正确的方向。有人可以帮忙吗?
答案 0 :(得分:0)
对于其中一个XML属性,这是一个使用错误案例的简单案例,我没有意识到这对于.NET来说是多么重要,因为我已经习惯了常常宽容的PHP。
如果您正在编写与.NET或ASP通信的PHP脚本,请务必检查所有大小写,如果您遇到的问题没有意义。