Я хотел бы знать, как удалить из XML-файла все элементы, которые не имеют первого атрибута типа name или ref .Дочерние элементы, которые содержат первый атрибут требуемого типа, должны оставаться, даже если родительский элемент был удален, и их следует просто переместить вверх в иерархии
Например, если это входной файл:
<xs:element name="Body" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType>
<xs:sequence>
<xs:element ref="Client" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Risk" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Claim" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Complaint" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="ClientFee" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="User" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
Я ожидал бы следующий вывод:
<xs:element name="Body" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element ref="Client" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Risk" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Claim" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Complaint" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="ClientFee" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="User" minOccurs="0" />
</xs:element>