按标记内的值对XML进行排序
我搜索了很多关于排序XML的问题,但没有找到我需要的东西 我在下面有这个XML文件按标记内的值对XML进行排序,xml,sorting,Xml,Sorting,我搜索了很多关于排序XML的问题,但没有找到我需要的东西 我在下面有这个XML文件 <?xml version="1.0" encoding="UTF-8"?> <Package> <types> <members>C</members> <members>A</members> <members>B</members>
<?xml version="1.0" encoding="UTF-8"?>
<Package>
<types>
<members>C</members>
<members>A</members>
<members>B</members>
<name>Released</name>
</types>
<types>
<members>B</members>
<members>A</members>
<name>Beta</name>
</types>
<version>45.0</version>
C
A.
B
释放
B
A.
贝塔
45
那么我想这样分类
<?xml version="1.0" encoding="UTF-8"?>
<Package>
<types>
<members>A</members>
<members>B</members>
<name>Beta</name>
</types>
<types>
<members>A</members>
<members>B</members>
<members>C</members>
<name>Released</name>
</types>
<version>45.0</version>
</Package>
A.
B
贝塔
A.
B
C
释放
45
我尝试使用XLS,但失败了,有人可以帮我吗?您似乎在两个级别进行排序。您正在对
中的
子元素进行排序(顺便说一句,我发现在这里用复数名词来表示标记非常混乱),您还在对
中的
元素进行排序——但我还没有弄清楚您的排序标准是什么,只有两个样本,就有点难以检测模式
对
元素进行排序很容易:
<xsl:template match="types">
<xsl:for-each select="members">
<xsl:sort select="."/>
</xsl:for-each>
<xsl:copy-of select="name"/>
</xsl:template>
如果您的目标是根据成员对类型进行排序,考虑到按字母顺序排列的成员,那么我将采用两步解决方案:首先对成员进行排序,然后对类型进行排序。但是,在尝试为其推荐代码之前,我希望对需求有一个更清晰的描述。我的对话已经晚了,但是如果您仍然需要帮助对package.xml文件进行排序的话。请尝试以下vs代码扩展
希望这是有帮助的 展示你失败的尝试总是有用的。这给了我们一些线索,你已经知道了什么,我们需要告诉你什么。如果您几乎已经准备好了,那么从头开始制作一个工作示例对我们来说是浪费时间的。@MichaelKayI尝试使用类似的方法“类型”元素有多个“成员”子元素,所以,的xsl:sort和xsl:value看起来都是错误的。感谢您的帮助。我的要求是使文件更易于人类阅读。该文件是为与Salesforce一起使用而生成的。更多详细信息: