将元素添加到XML模式PHP

时间:2015-02-19 19:13:48

标签: php xml

我必须在现有的XML架构中添加一个新元素。我现有的XML架构看起来像这样。

<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="sample">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="id1" type="xs:int" minOccurs="0"/>
                        <xs:element name="id2" type="xs:string" minOccurs="0"/>
                        <xs:element name="id3" type="xs:int" minOccurs="0"/>

现在我需要结果模式,就像这样..

  <xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="sample">
                <xs:complexType>
                    <xs:sequence>
                      <xs:element name="id1" type="xs:int" minOccurs="0"/>
                      <xs:element name="id2" type="xs:string" minOccurs="0"/>
                      <xs:element name="id3" type="xs:int" minOccurs="0"/>
                      <xs:element name="id4" type="xs:int" minOccurs="0"/>

要在元素示例下添加的新元素id4。我尝试了createElementappendChild,但它无法正常工作。帮我解决这个问题

这是我尝试添加新元素的代码

$schema_dom=new DOMDocument($schemaxml); 
$respondent=
$schema_dom->getElementsByTagName('sample');
firstname=$schema_dom->createElement('id4'); 
$respondent->appendChild($firstname);
$schemaobj=$schema_dom->saveXML();

在上面的代码中,$ schemaxml是一个包含XML模式的字符串变量。上面代码给出了一个错误,说Fatal error: Call to undefined method DOMNodeList::appendChild()

0 个答案:

没有答案