使用PHP获取XSD内容

Fra*_*ona 2 php xml xsd codeigniter

我需要使用PHP提取XSD文件的内容.我不想针对XML验证它 ; 我只需要取一些节点并检查一些属性.

这是我的XSD示例:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="http://www.opengis.net/gml" schemaLocation="somelocation.xsd" /> 
  <xsd:complexType name="nameType">
    <xsd:complexContent>
       <xsd:extension base="gml:AbstractFeatureType">
         <xsd:sequence>
             <xsd:element maxOccurs="1" minOccurs="0" name="x" nillable="true" type="xsd:int" /> 
             <xsd:element maxOccurs="1" minOccurs="0" name="y" nillable="true" type="xsd:int" /> 
             <xsd:element maxOccurs="1" minOccurs="0" name="z" nillable="true" type="xsd:decimal" /> 
         </xsd:sequence>
       </xsd:extension>
  </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="lz_anual_250" substitutionGroup="gml:_Feature" type="layerType" /> 
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)

我不知道这是否可行,所以我只是向StackOverflow的专家询问.

谢谢!

PS:我正在使用CodeIgniter,所以如果有人知道任何扩展或类似的事情,请在这里发布.

编辑:问题解决了!

这是一个链接,可以帮助与我有同样问题的人:

http://www.php.net/manual/en/domdocument.load.php#57911

简单地说,有人使用DOMXPath类在使用DOMDocument类之前浏览XSD读取(就像rik告诉我的那样).XSD不是空的.我试图print_r,var_dump和回显节点,但显然没有包含像经典XML的信息.

rik*_*rik 7

XSD本身就是XML.您可以像使用任何XML文件一样使用它.

$doc = new DOMDocument();
$doc->load('your.xsd');
// do whatever you want
Run Code Online (Sandbox Code Playgroud)

  • 这就是`DOMDocument :: loadXML($ source)`的用途.;-) (2认同)
  • 警告是由于缺少XML序言.别小心.更新问题,显示您如何尝试阅读并告诉缺少什么. (2认同)