simple-xmlを使用する場合、認識しないノードを無視させる方法はありますか?
1612 次
2 に答える
4
はい。クラスに注釈を付けると、@Root(strict=false)
マップされていない要素は無視されます。詳細については、ドキュメントを参照してください。
http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#loosemap
関連して、 を使用してオプションの要素を処理することもできます@Element(required=false)
。
http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#optional
于 2013-08-13T12:55:40.970 に答える
0
免責事項: simple-xml が単純な XML以外を意味する場合、次の回答は関係ありません。
まず、http ://www.w3.org/TR/xmlschema-1/#element-any を見てください。
そのような要素を許可するスキーマの例は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Root">
<xs:complexType>
<xs:all>
<xs:element name="Element">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:any processContents="lax" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
上記を検証する xml の例は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<Root xsi:noNamespaceSchemaLocation="Any.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Element>
<Root>
<Element><Node1><SubElement/></Node1><Node2/></Element>
</Root>
</Element>
</Root>
于 2011-03-09T06:57:07.757 に答える