基本上我有这个
<Placemark>
<name>9795</name>
<description><![CDATA[converted by:</br><a href="http://gridreferencefinder.com/">GridReferenceFinder.com</a></br>]]></description>
<Point>
<coordinates>-1.0198045,52.231084,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>9800</name>
<description><![CDATA[converted by:</br><a href="http://gridreferencefinder.com/">GridReferenceFinder.com</a></br>]]></description>
<Point>
<coordinates>-1.0198629,52.23109400000001,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>9805</name>
<description><![CDATA[converted by:</br><a href="http://gridreferencefinder.com/">GridReferenceFinder.com</a></br>]]></description>
<Point>
<coordinates>-1.0199357,52.231112,0</coordinates>
</Point>
</Placemark>
我想把它变成这样
<Placemark>
<name>9800</name>
<description><![CDATA[converted by:</br><a href="http://gridreferencefinder.com/">GridReferenceFinder.com</a></br>]]></description>
<Point>
<coordinates>-1.0198629,52.23109400000001,0</coordinates>
</Point>
</Placemark>
但我有数千行。我想搜索组并删除行号末尾没有 00 或 50 的组<name>number</name>
答案1
您可以通过执行 XSL 转换来解决您的问题。您可以通过添加XML 工具插件到你的 Notepad++。
使用以下转换创建一个新的 xsl 文件:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()">
<xsl:sort select="Placemark/name"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="Placemark['00' != substring(name, string-length(name) - string-length('00') +1) and '50' != substring(name, string-length(name) - string-length('50') +1)]"/>
</xsl:stylesheet>
转换将复制所有以或结尾Placemark
的节点到结果中。name
00
50
现在您可以打开 XML 文件。转到插件 --> XML 工具 --> XSL 转换。选择创建的 xls 文件并进行转换。