【发布时间】:2019-09-20 09:03:32
【问题描述】:
我正在使用go-libxml2。我有一个 XSD 和一个 XML。我想基于 XSD 过滤 XML 中的所有 anyURI 元素,包括嵌套元素。因为我试图通过添加查询参数来更新 XML 中的所有 anyURI 元素。例如
XSD:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="grandParent">
<xs:complexType>
<xs:sequence>
<xs:element name="AnyURI1" type="xs:anyURI"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="parent">
<xs:complexType>
<xs:sequence>
<xs:element name="AnyURI2" type="xs:anyURI"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="children">
<xs:complexType>
<xs:sequence>
<xs:element name="AnyURI3" type="xs:anyURI"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:element>
</xs:element>
</xs:schema>
XML
<grandParent>
<AnyURI1> http://uri_gp1.com </AnyURI1>
<AnyURI1> http://uri_gp2.com </AnyURI1>
<parent>
<AnyURI2> http://uri_p1.com </AnyURI2>
<AnyURI2> http://uri_p2.com </AnyURI2>
<children>
<AnyURI3> http://uri_child1.com </AnyURI3>
<AnyURI3> http://uri_child2.com </AnyURI3>
</children>
</parent>
</grandParent>
在上面的 XML 中,我想过滤和更新所有类型为“anyURI”的元素,例如 <AnyURI1>, <AnyURI2> and <anyURI3>
如何使用 golang 实现这一点?
【问题讨论】: