&、<、>、"、および'などの不正な文字を含む XML ファイルをよく取得します。そのため、 simple_xmlおよびDOMでそれらを読み取り、以下のXSDに対してユーザーのXMLファイルを検証して、PHP でさらに処理を行うことができません。
この問題を解決する方法はありますか?
リモート ホストから XML ファイルを読み取っているため、10KB から 10MB の間である可能性があります。
前もって感謝します
注:何らかの理由で XML ファイル全体がここではプレーン テキストとして表示されるため、以下に無効な XML 要素のみを配置しています。
XML
<url>http://www.amazon.co.uk/gp/product/B005MG8O96/ref=olp_product_details?ie=UTF8&me=&seller=</url>
<description>iPhone 4. The "fastest", <b>highest-resolution</b> iPhone.</description>
XSD
<?xml version="1.0" encoding="UTF-8"?>
<xs:element name="store">
<xs:complexType>
<xs:sequence>
<xs:element name="item" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="title_type" />
<xs:element name="description" type="description_type" />
<xs:element name="price" type="xs:decimal" />
<xs:element name="url" type="url_type" />
<xs:element name="images">
<xs:complexType>
<xs:sequence>
<xs:element name="image" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="url" type="url_type" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="id_type" />
<xs:attribute name="available" type="available_type" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="id_type" />
<xs:attribute name="date" type="xs:date" />
<xs:attribute name="time" type="xs:time" />
</xs:complexType>
</xs:element>
<xs:simpleType name="title_type">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="description_type">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="url_type">
<xs:restriction base="xs:anyURI">
<xs:minLength value="10" />
<xs:maxLength value="2000" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="id_type">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="available_type">
<xs:restriction base="xs:string">
<xs:enumeration value="Yes" />
<xs:enumeration value="No" />
</xs:restriction>
</xs:simpleType>