最近在忙于写一个小型网站,其中的某些数据想要通过文件的形式保存下来,想来想去好像还是用xml的形式比较好
然后刚开始的时候觉得一个这样的文件就够了,于是我自己做了个验证自己的xml的schema的文档以后,生成了一个
匹配的xml文件,后来发现其实我需要动态的建立这么个xml文件,也就是说我需要在代码里新建一个可以匹配我那个
schema的xml文档整理一下,现在我有一个叫做A.xsd的xml schema文件
我需要实现在代码里新建一个xml的文件,但这个xml在新建的时候需要它已经有些结构了(并不是个空白的崭新文档)
结构是匹配这个叫A.xsd的文件的,我想问问怎么实现这个可能分数给的不是很多,不过已经几乎是我全部的分数了,希望各位大大耐心的解答下,麻烦了

解决方案 »

  1.   

    这需要你自定义规则,然后通过条件去构造连接xsd,无非就是if/switch
    如果xml初始结构已经存在,可以通过某个/些特有的节点去判断xsd
    例如用dom+xpath判断是否有element A,然后判断是否用a.xsd
      

  2.   

    追问一下snmr_com现在我不太清楚怎么去构造连接这个xsd的文件.....或者说我不知道应该用哪个函数.....麻烦snmr_com再看看
      

  3.   

    Best option which come to mind is SDO XML DAS (http://www.php.net/manual/en/book.sdo-das-xml.php).Simple example of loading schema, set some fields and then export as XML as below:
    $xmldas = SDO_DAS_XML::create("A.xsd");
    $doc = $xmldas->createDocument();
    $rdo = $doc->getRootDataObject();
    $rdo->nameFirst = "Ali";
    $rdo->nameLast = "Naqvi";
    echo $xmldas->saveString($doc, 4);
    Hope it helps.//Ali
      

  4.   

    追问下hnxxwyq额....DOMDocument->importNode(),作用不是把某个节点插入到xml文件的某个地方么......
    不太明白这个怎么和xml schema的文件关联,请再指点的透彻些,我不太理解额再次麻烦下
      

  5.   

    回复AliNaqvi:我装一下SDO_DAS_XML以后试试看,先谢谢了........如果不成功我会继续追问的........
      

  6.   

    引用schema无非就是xml里面一个特殊节点而已
    <?xml version="1.0"?>
    <note
    xmlns="http://www.w3school.com.cn"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
    楼上的印度(是印度么?)朋友写的可以参照,不过应该额外需要SDO扩展
      

  7.   

    回复snmr_comAliNaqvi的SDO_XML_DAS貌似windows下运用有些困难......啊,扯远了xsi:schemaLocation="http://www.w3school.com.cn note.xsd"
    这个就是说这个xml的文档是符合http://www.w3school.com.cn note.xsd这个schema的对吧好像有点清楚了,我再想想吧,再想想怎么弄吧
    先谢谢各位大大对于我的帮忙,先对大家的帮助提供反馈,再弄不出我会再看一帖的~
    再次表达对大家的感谢