鉴于此表达式匹配包含 minOccurs
的行 <xs:element[^>]+?\sminOccurs\s*=[^>]+>
和本文:
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" minOccurs="1" type="xs:string"/>
<xs:element name="country" minOccurs="1" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
如何将包含minOccurs 的 xs:element 行更改为不包含的 xs:element 行包含minOccurs 。
预期的输出将是:
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
答案 0 :(得分:6)
使用XML引擎代替正则表达式。适当的XPath:
//xs:element[not(@minOccurs)]
正则表达式:
<xs:element(?![^>]+?minOccurs=".*?")[^>]*>