2011-01-19 7 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> 

これが可能である場合、私は知らないので、私はただのStackOverflowの専門家に聞いていますのよ。

ありがとうございます!

PS:私はCodeIgniterを使用していますので、誰かが拡張子などを知っていれば、ここに投稿してください。

EDIT:問題解決済み!ここで

が私と同じ問題を持つ人を助けることができるリンクです:

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

単に、誰かがXSDをナビゲートするDOMXPathを使うことの最大のクラスを使用(RIKは私に言ったように)のDOMDocumentクラスを使用する前に読んで。 XSDは空ではありませんでした。私はprint_r、var_dumpを試していて、ノードをエコーし​​ましたが、明らかに古典的なXMLのような情報は含まれていませんでした。

答えて

6

XSDはXMLそのものです。任意のXMLファイルと同様に作業できます。

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

ありがとうございます。私はこれをチェックしていますが、私のXSDはファイルではありません。 extern URLからロードされたリソースです(HttpRequestを使用しています)。 –

+2

これは 'DOMDocument :: loadXML($ source)'の目的です。 ;-) – rik

+0

申し訳ありません。申し訳ありません、私はこれを少し初心者です。この関数を使用すると、PHPは警告を生成し、my $ docは空です。しかし、IEで同じURLを開くと、XSD全体が表示されます。あなたはこのことについてどう思いますか?助言がありますか?おかげで再びrik :)編集: 'loadXML'の代わりに '負荷'を使用して私の問題を解決します。 –

関連する問題