Php DomDocument-Don';你没有收尾标签吗?
这是我第一次处理DomDocument和PHP。我几乎完成了,但不知为什么XML缺少一个结束标记。我在下面的XML中缺少“Sport”的结束标记Php DomDocument-Don';你没有收尾标签吗?,php,xml,domdocument,php-5.6,Php,Xml,Domdocument,Php 5.6,这是我第一次处理DomDocument和PHP。我几乎完成了,但不知为什么XML缺少一个结束标记。我在下面的XML中缺少“Sport”的结束标记 <?xml version="1.0" encoding="UTF-8"?> <Persons PageCount="1" PageIndex="1" ApplicationId="secret" xmlSchemaVersion="1.0" GenerationDate="2018-11-17T23:10:31" IsIncreme
<?xml version="1.0" encoding="UTF-8"?>
<Persons PageCount="1" PageIndex="1" ApplicationId="secret" xmlSchemaVersion="1.0" GenerationDate="2018-11-17T23:10:31" IsIncremental="true">
<Person CreateDate="2008-08-29T08:39:44" LMDate="2012-08-29T08:39:44" OptionType="Update">
<PersonId>82</PersonId>
<PersonalNumber>19660903-xxxx</PersonalNumber>
<FirstName>Joakim</FirstName>
<LastName>Krassman</LastName>
<BirthDate>1966-09-03</BirthDate>
<Gender>male</Gender>
<Organisations>
<Organisation OptionType="Update">
<OrgID>31215</OrgID>
<OrganisationRF_NR>45264</OrganisationRF_NR>
<OrganisationNumber>556717xxxx</OrganisationNumber>
<Sports>
<Sport OptionType="Update"/>
<SportID>43</SportID>
<IsActive LMDate="2012-08-29T08:39:44">true</IsActive>
</Sports>
</Organisation>
</Organisations>
</Person>
</Persons>
82
19660903 xxxx
乔金
克拉斯曼
1966-09-03
男性的
31215
45264
556717xxxx
43
真的
这是我的PHP代码:
<?php
$generate_date = date('Y-m-d\TH:i:s');
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->formatOutput = true;
/* PERSONS */
$r = $doc->createElement( "Persons" );
$attr = $doc->createAttribute('PageCount');
$attrVal = $doc->createTextNode(1);
$attr->appendChild($attrVal);
$r->appendChild($attr);
$attr = $doc->createAttribute('PageIndex');
$attrVal = $doc->createTextNode(1);
$attr->appendChild($attrVal);
$r->appendChild($attr);
$attr = $doc->createAttribute('ApplicationId');
$attrVal = $doc->createTextNode("secret");
$attr->appendChild($attrVal);
$r->appendChild($attr);
$attr = $doc->createAttribute('xmlSchemaVersion');
$attrVal = $doc->createTextNode("1.0");
$attr->appendChild($attrVal);
$r->appendChild($attr);
$attr = $doc->createAttribute('GenerationDate');
$attrVal = $doc->createTextNode($generate_date);
$attr->appendChild($attrVal);
$r->appendChild($attr);
$attr = $doc->createAttribute('IsIncremental');
$attrVal = $doc->createTextNode('true');
$attr->appendChild($attrVal);
$r->appendChild($attr);
$doc->appendChild( $r );
/* PERSON */
$b = $doc->createElement( "Person" );
$attr = $doc->createAttribute('CreateDate');
$attrVal = $doc->createTextNode('2008-08-29T08:39:44');
$attr->appendChild($attrVal);
$b->appendChild($attr);
$attr = $doc->createAttribute('LMDate');
$attrVal = $doc->createTextNode('2012-08-29T08:39:44');
$attr->appendChild($attrVal);
$b->appendChild($attr);
$attr = $doc->createAttribute('OptionType');
$attrVal = $doc->createTextNode('Update');
$attr->appendChild($attrVal);
$b->appendChild($attr);
/* START PERSON SINGULAR */
$person = $doc->createElement( "PersonId" );
$person->appendChild(
$doc->createTextNode( 82 )
);
$b->appendChild( $person );
$person = $doc->createElement( "PersonalNumber" );
$person->appendChild(
$doc->createTextNode( '19660903-xxxx' )
);
$b->appendChild( $person );
$person = $doc->createElement( "FirstName" );
$person->appendChild(
$doc->createTextNode( 'Joakim' )
);
$b->appendChild( $person );
$person = $doc->createElement( "LastName" );
$person->appendChild(
$doc->createTextNode( 'Krassman' )
);
$b->appendChild( $person );
$person = $doc->createElement( "BirthDate" );
$person->appendChild(
$doc->createTextNode( '1966-09-03' )
);
$b->appendChild( $person );
$person = $doc->createElement( "Gender" );
$person->appendChild(
$doc->createTextNode( 'male' )
);
$b->appendChild( $person );
/* SKJUT IN ORGINISATION */
$org = $doc->createElement( "Organisations" );
$b->appendChild($org);
$subOrg = $doc->createElement( "Organisation" );
$subOrg->setAttribute("OptionType", "Update");
$org->appendChild( $subOrg );
$orgDet = $doc->createElement( "OrgID" );
$orgDet->appendChild(
$doc->createTextNode( 31215 ));
$subOrg->appendChild( $orgDet );
$orgDet = $doc->createElement( "OrganisationRF_NR" );
$orgDet->appendChild(
$doc->createTextNode( 45264 ));
$subOrg->appendChild( $orgDet );
$orgDet = $doc->createElement( "OrganisationNumber" );
$orgDet->appendChild(
$doc->createTextNode( 556717xxxx ));
$subOrg->appendChild( $orgDet );
/* SPORTS */
$sport = $doc->createElement( "Sports" );
$subOrg->appendChild($sport);
$subOrg = $doc->createElement( "Sport" );
$subOrg->setAttribute("OptionType", "Update");
$sport->appendChild( $subOrg );
$sportDet = $doc->createElement( "SportID" );
$sportDet->appendChild(
$doc->createTextNode( 43 ));
$sport->appendChild( $sportDet );
$sportDet = $doc->createElement( "IsActive" );
$sportDet->setAttribute("LMDate", "2012-08-29T08:39:44");
$sportDet->appendChild(
$doc->createTextNode( 'true' ));
$sport->appendChild( $sportDet );
/* SLUT ORGINISATION */
/* SLUT PERSON SINGULAR*/
$r->appendChild( $b );
echo ($doc->saveXML());
?>
createTextNode(“1.0”);
$attr->appendChild($attrVal);
$r->appendChild($attr);
$attr=$doc->createAttribute('GenerationDate');
$attrVal=$doc->createTextNode($generate_date);
$attr->appendChild($attrVal);
$r->appendChild($attr);
$attr=$doc->createAttribute('IsIncremental');
$attrVal=$doc->createTextNode('true');
$attr->appendChild($attrVal);
$r->appendChild($attr);
$doc->appendChild($r);
/*人*/
$b=$doc->createElement(“人”);
$attr=$doc->createAttribute('CreateDate');
$attrVal=$doc->createTextNode('2008-08-29T08:39:44');
$attr->appendChild($attrVal);
$b->appendChild($attr);
$attr=$doc->createAttribute('LMDate');
$attrVal=$doc->createTextNode('2012-08-29T08:39:44');
$attr->appendChild($attrVal);
$b->appendChild($attr);
$attr=$doc->createAttribute('OptionType');
$attrVal=$doc->createTextNode('Update');
$attr->appendChild($attrVal);
$b->appendChild($attr);
/*起始单数*/
$person=$doc->createElement(“PersonId”);
$person->appendChild(
$doc->createTextNode(82)
);
$b->儿童(人);
$person=$doc->createElement(“PersonalNumber”);
$person->appendChild(
$doc->createTextNode('19660903 xxxx')
);
$b->儿童(人);
$person=$doc->createElement(“FirstName”);
$person->appendChild(
$doc->createTextNode('Joakim')
);
$b->儿童(人);
$person=$doc->createElement(“LastName”);
$person->appendChild(
$doc->createTextNode('Krassman')
);
$b->儿童(人);
$person=$doc->createElement(“生日”);
$person->appendChild(
$doc->createTextNode('1966-09-03')
);
$b->儿童(人);
$person=$doc->createElement(“性别”);
$person->appendChild(
$doc->createTextNode('male')
);
$b->儿童(人);
/*组织中的SKJUT*/
$org=$doc->createElement(“组织”);
$b->appendChild($org);
$subOrg=$doc->createElement(“组织”);
$subOrg->setAttribute(“OptionType”、“Update”);
$org->appendChild($subOrg);
$orgDet=$doc->createElement(“OrgID”);
$orgDet->appendChild(
$doc->createTextNode(31215));
$subOrg->appendChild($orgDet);
$orgDet=$doc->createElement(“组织编号”);
$orgDet->appendChild(
$doc->createTextNode(45264));
$subOrg->appendChild($orgDet);
$orgDet=$doc->createElement(“组织编号”);
$orgDet->appendChild(
$doc->createTextNode(556717xxxx));
$subOrg->appendChild($orgDet);
/*运动*/
$sport=$doc->createElement(“运动”);
$subOrg->appendChild($sport);
$subOrg=$doc->createElement(“运动”);
$subOrg->setAttribute(“OptionType”、“Update”);
$sport->appendChild($subOrg);
$sportDet=$doc->createElement(“SportID”);
$sportDet->appendChild(
$doc->createTextNode(43));
$sport->appendChild($sportDet);
$sportDet=$doc->createElement(“IsActive”);
$sportDet->setAttribute(“LMDate”,“2012-08-29T08:39:44”);
$sportDet->appendChild(
$doc->createTextNode('true');
$sport->appendChild($sportDet);
/*荡妇组织*/
/*荡妇单数*/
$r->b$b;
echo($doc->saveXML());
?>
我确信我犯了一些根本性的错误,有人能引导我找到解决方案吗?标签是一个空标签,因此在标签的末尾关闭(
/>
)-
这会给你
<Sport OptionType="Update"></Sport>
你需要把这两行改成
$sport->appendChild( $sportDet );
要将它们添加到$subOrg
,请改为
$subOrg->appendChild( $sportDet );
好的,但我希望结束标记在“”标记之后。如果我应用你的解决方案,我会在开始标记之后直接得到结束标记。好的-这在问题中并不清楚,我已经在答案中添加了一些更新。谢谢Nigel,这就成功了。希望集成器使用JSON而不是XML;)这是很好的,知道如何与这两个工作,因为人们想要各种各样的这些天!如果这解决了问题,你能接受吗?谢谢。
<Sport OptionType="Update">
<SportID>43</SportID>
<IsActive LMDate="2012-08-29T08:39:44">true</IsActive>
</Sport>
$subOrg = $doc->createElement( "Sport" );
$subOrg->setAttribute("OptionType", "Update");
$sport->appendChild( $subOrg );
$sportDet = $doc->createElement( "SportID" );
$sportDet->appendChild(
$doc->createTextNode( 43 ));
$sport->appendChild( $sportDet );
$sportDet = $doc->createElement( "IsActive" );
$sportDet->setAttribute("LMDate", "2012-08-29T08:39:44");
$sportDet->appendChild(
$doc->createTextNode( 'true' ));
$sport->appendChild( $sportDet );
$sport->appendChild( $sportDet );
$subOrg->appendChild( $sportDet );