C中是否有可用于重新排序XML元素的API?
示例输入文件如下所示:
<A> a</A>
<B>b</B>
<C>
<a1> a1</a1>
<a2>a2</a2>
d
我正在获得如上所述的输入,但我想像下面那样格式化xml(我将在xslt中指定xml元素应该出现在xslt输出中的顺序。)
<A> a</A>
<B>b</B>
<D>D</D>
<C>
<a1> a1</a1>
<a2>a2</a2>
C中有没有可以做到这一点的API?或者有没有更好的方式来排序XML元素。?
感谢, 马杜
答案 0 :(得分:1)
libxml2
库将执行此操作。
您可以Xpath queries来创建XML数据的子集:一个用于节点 某些属性,另一个节点没有相同属性,然后重复处理具有两个或更多节点的子集,直到获得一组父节点partition,您可以按所需顺序打印出来。
例如, with 属性结果,例如,示例中的C
节点。 没有属性结果的是节点A
,B
和D
。现在您有两个结果集,您可以搜索而不设置以获得B
结果。在三个查询结束时,您有三个XML节点子集:{A, D}
,{C}
和{B}
。
掌握这些结果后,使用新订单{A, D, B, C}
创建文档只需按顺序打印出子集。
答案 1 :(得分:0)