我有一個簡單的XML字符串,或多或少總是相同。我寧願避免使用XML解析器來處理這麼一小段代碼,而我通過Regexp會有所幫助。Ruby Regexp提取XML字符串中的特定元素
的XML字符串看起來像:
<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.extendedPing</methodName>
<params>
<param>
<value>Official Google Blog</value>
</param>
<param>
<value>http://googleblog.blogspot.com/</value>
</param>
<param>
<value>http://googleblog.blogspot.com/</value>
</param>
<param>
<value>http://googleblog.blogspot.com/atom.xml</value>
</param>
</params>
</methodCall>
我想提取每個參數的時值(和維護秩序)。
我想出了/<value>(.*)<\/value>/xi
但只是macthes的第一個值:/
請停止傳播這個模式:用正則表達式解析XML並不是「非常困難和容易出錯」,它根本不可能。從「不可能得到正確」的意義上說,這不是不可能的,但在數學上是不可能的。事實上,幾乎每個在整個星球上的CS學生都會在他/她的職業生涯中的某個時間在某些家庭作業或其他任務中證明了這種不可能性。 – 2009-11-20 04:50:27
@Jörg - 我恐怕你和我在談論兩件完全不同的事情。數學上的不可能性與真正的不可能性是非常不同的(因爲缺乏更好的短語)。在XML上使用正則表達式是不可能的?不,當然不是 - 完全有可能使用正則表達式來破解大多數情況下都能正常工作的解決方案。我理解你的觀點(並且原則上同意你的觀點),但是對於像這樣的實際討論確實沒有多大的意義。 – 2009-11-21 14:40:41