2017-02-20 37 views
0

我有一个很大的XML文档 - 下面是一个简短的例子来说明格式。我想要做的就是找到这不是一个标签内的文档中的所有文本,并删除它 - 所以我只剩下一个数据列表...XML查找并删除指定标记内的文档中的所有文本

因此,这里是原:

51.639973121-2.161205923 
112.0 
<time>2017-02-19T11:26:45Z</time> 

51.639902964-2.161258059 
111.6 
<time>2017-02-19T11:26:46Z</time> 

51.639834484-2.161310529 
111.6 
<time>2017-02-19T11:26:47Z</time> 

51.639765501-2.161366101 
111.6 
<time>2017-02-19T11:26:48Z</time> 

51.639697859-2.161426451 
111.8 
<time>2017-02-19T11:26:49Z</time> 

而且一旦格式化 - 它会成为:

<time>2017-02-19T11:26:45Z</time> 
<time>2017-02-19T11:26:46Z</time> 
<time>2017-02-19T11:26:47Z</time> 
<time>2017-02-19T11:26:48Z</time> 
<time>2017-02-19T11:26:49Z</time> 

这怎么可能???

+1

正则表达式是不解析XML的方式,如果你做它在PHP如果你的文件特别大,你可以使用XMLReader类(不需要加载整个文件一次,并且不需要构建DOM树)。 –

+0

它的脱机文件 - 可以用任何诚实的东西打开/编辑... – dubbs

+0

必须通过正则表达式来实现吗?^[#;]。*接近我需要的表情? – dubbs

回答

1

以下表达式将选择所有文字,但时间标签:

^(?!<time>[^<]+<\/time>).*\R 

它的工作原理只有在标签上一个新的生产线,就像你输入例。

See the demo

+0

谢谢 - 在您演示中的作品是 - 不是在Dreamweaver中查找工具,但是...我如何使用Regex来完成这项工作? – dubbs

+0

同样想要一个删除命令,一旦它找到所有没有的东西

+0

使用https://regex101.com如何删除'找到'选择? – dubbs

相关问题