TLDR - 只有在描述提到短语“办公室”时才在名称和说明标签之间插入Style标签及其内容(请参阅代码块),以便将当前Google Earth地标从默认黄色地标更改为定制的...
大家好,我在解决这个问题上遇到了一些麻烦...... 使用Notepadd ++我正在编辑一个Google Earth kml文件,其中有许多符合此XML模式的地标:
<Placemark>
<name>Jim</name>
<description>Jim goes to the office every day</description>
<TimeSpan>
<begin>2016-06-20T12:00:00Z</begin>
<end>2016-06-25T12:00:00Z</end>
</TimeSpan>
<Point>
<coordinates>123412341234,123412341234,1</coordinates>
</Point>
</Placemark>
我想找到“办公室”这个短语的每个实例。如果找到该文本,则以Google地球可读的方式在名称和描述之间插入以下代码。
<Style id="customstyle">
<IconStyle>
<color>a1ff00ff</color>
<scale>1.5</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png</href>
</Icon>
</IconStyle>
</Style>
执行此操作会将地标从默认地标更改为自定义地标。
到目前为止我找到的所有教程都是关于如何使用Notepad ++正则表达式在行的开头或结尾添加单词或短语的说明,或者指示说明如何使用\ n在下一行插入文本。 但是,我认为我的情况是独特的,因为基于某个标准,我想在文本上方插入我的文本。 (更具体地说,在名称和描述标签之间插入我的文字)
最终结果看起来像这样(注意我想要添加的文本现在位于名称标签和描述标签之间)
<Placemark>
<name>Jim</name>
<Style id="customstyle">
<IconStyle>
<color>a1ff00ff</color>
<scale>1.5</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png</href>
</Icon>
</IconStyle>
</Style>
<description>Jim goes to the office every day</description>
<TimeSpan>
<begin>2016-06-15T12:00:00Z</begin>
<end>2016-06-20T12:00:00Z</end>
</TimeSpan>
<Point>
<coordinates>2135125,1234523451,12341234</coordinates>
</Point>
</Placemark>
现在,遵循该模式的所有地标都会有一个与默认地标不同的地标类型(我不再感到头痛)。
先谢谢所有人。
答案 0 :(得分:0)
嗯,正则表达式并不需要在线之前匹配一些东西 它只需要在比赛前用线条放一些东西 所以它仍然是一件相当简单的事情。
所以使用Notepad ++
查找内容:(\s+)(<description>)(?=.*?the office.*?<\/description>)
替换为:$1<Style id="customstyle">$1\t<IconStyle>$1\t\t<color>a1ff00ff</color>$1\t\t<scale>1.5</scale>$1\t\t<Icon>$1\t\t\t<href>http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png</href>$1\t\t</Icon>$1\t</IconStyle>$1</Style>$1$2
搜索模式:正则表达式
请注意,description标记之前的空格放在捕获组1中 这是一个技巧,使插入与标记具有相同的缩进。
但你也可以放入没有空格的标签。
查找内容:(<description>)(?=.*?the office.*?<\/description>)
替换为:<Style id="customstyle"><IconStyle><color>a1ff00ff</color><scale>1.5</scale><Icon><href>http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png</href></Icon></IconStyle></Style>$1
然后使用像&#34; XML Tools&#34;这样的插件。到&#34;漂亮的打印&#34;你的XML。