2011-01-19 98 views
1

我需要使用PHP提取XSD文件的內容。 我不想根據XML對其進行驗證;我只需要一些節點並檢查一些屬性。使用PHP獲取XSD內容

這裏是我的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> 

我不知道這是可能的,所以我只是問到在計算器上的專家。

謝謝! PS:我使用CodeIgniter,所以如果有人知道任何擴展名或類似的話,請在這裏發帖。

編輯:問題解決了!

這裏是一個鏈接,可以幫其他人同樣的問題我:

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

簡單地說,有人用DOMXPath類通過使用DOMDocument類前閱讀XSD導航(像裏克告訴我的) 。 XSD不是空的。我正在嘗試print_r,var_dump和回顯節點,但顯然沒有包含經典XML這樣的信息。

回答

6

XSD本身就是XML。您可以像處理任何XML文件一樣使用它。

$doc = new DOMDocument(); 
$doc->load('your.xsd'); 
// do whatever you want 
+0

謝謝你。我正在檢查這個,但我的XSD不是一個文件;它是從外部URL(使用HttpRequest)加載的資源。 – 2011-01-19 17:58:36