簡體   English   中英

Java Regex-從xml中排除空標簽

[英]Java Regex - exclude empty tags from xml

假設我有兩個xml字符串:

字符串logToSearch =“ <abc> <number> 123456789012 </ number> </ abc>”

字符串logToSearch2 =“ <abc> <數字xsi:type = \\” soapenc:string \\“ /> </ abc>”

字符串logToSearch3 =“ <abc> <number /> </ abc>”;

我需要一個模式來查找數字標簽(如果標簽包含值),即匹配項只能在logToSearch中找到。

我並不是說我在尋找數字本身,而是matcher.find方法應該僅對第一個字符串返回true。

現在,我有了這個:模式pattern = Pattern.compile(“ <(” + pattrenString +“)。*?>”,Pattern.CASE_INSENSITIVE); 其中patternString只是“數字”。 我嘗試添加“ <(” + pattrenString +“)[^ />]。*?>,但是它不起作用,因為在[^ />]中每個字符都被單獨對待。

謝謝

這絕對是解析XML的錯誤方法。 實際上,如果您不僅需要這里給出的基本示例,那么使用正則表達式無法解決更復雜的情況。

使用簡單的XML解析器,例如XOM 現在,使用xpath,查詢元素並過濾掉沒有數據的元素。 我只能想象,除非您立即修改方法,否則這個問題是將來頭疼的先兆。

因此,搜索"<number[^/>]*>"將找到開始標記。 如果要確保它不為空,請嘗試"<number[^/>]*>[^<]""<number[^/>]*>[0-9]"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM