java dom4j解析xml用到的幾個辦法。本站提示廣大學習愛好者:(java dom4j解析xml用到的幾個辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是java dom4j解析xml用到的幾個辦法正文
%Q
用於替換雙引號的字符串. 當你須要在字符串裡放入許多引號時刻, 可以直接用上面辦法而不須要在引號前逐一添加反斜槓 (\")
>> %Q(Joe said: "Frank said: "#{what_frank_said}"")
=> "Joe said: "Frank said: "Hello!"""
(...)也可用其他非數字字母的符號或成對的符號取代, 諸如[...], !...!, +...+,{...}, <...>等.
以下寫法全體與下面等效:
>> %Q!Joe said: "Frank said: "#{what_frank_said}""!
>> %Q[Joe said: "Frank said: "#{what_frank_said}""]
>> %Q+Joe said: "Frank said: "#{what_frank_said}""+
除此以外還可省略Q寫作:
>> %/Joe said: "Frank said: "#{what_frank_said}""/
=> "Joe said: "Frank said: "Hello!"""
%q
與%Q相似, 然則表現的是單引號字符串
>> %q(Joe said: 'Frank said: '#{what_frank_said} ' ')
=> "Joe said: 'Frank said: '\#{what_frank_said} ' '"
%W
語法近似於%Q, 用於表現個中元素被雙引號括起的數組.
>> %W(#{foo} Bar Bar\ with\ space)
=> ["Foo", "Bar", "Bar with space"]
%w
用於表現個中元素被單引號括起的數組. 比擬奇異的是\(斜槓空格)會被轉化成(空格), 然則其他的內容不會.
>> %w(a b c\ d \#e #{1}f)
=> ["a", "b", "c d", "\\#e", "\#{1}f"]
%x
應用`辦法履行一段shell劇本並前往尺度輸入內容.
>> %x(echo foo:#{foo})
=> "foo:Foo\n"
%r
語法近似於%Q, 用於正則表達式.
>> %r(/home/#{foo})
=> "/\\/home\\/Foo/"
%s
用於表現symbol, 然則不會對個中表達式等外容停止轉化
>> %s(foo)
=> :foo
>> %s(foo bar)
=> :"foo bar"
>> %s(#{foo} bar)
=> :"\#{foo} bar"
%i
Ruby 2.0 以後引入的語法, 用於生成一個symbol數組
2.0.0p247 :014 > %i(a b c)
=> [:a, :b, :c]
附:另外一篇
%{String} 用於創立一個應用雙引號括起來的字符串
%Q{String} 用於創立一個應用雙引號括起來的字符串
%Q!Some String of “Characters”! <==> ” Some String of /”Characters/” “
%q{String} 用於創立一個應用單引號括起來的字符串
%q!Some String of “Characters”! <==> ‘Some String of Characters'
%r{String} 用於創立一個正則表達式字面值
%r{/usr/bin/} <==> ///usr//bin///
%w{String} 用於將一個字符串以空白字符切分紅一個字符串數組,停止較少調換
%W{String} 用於將一個字符串以空白字符切分紅一個字符串數組,停止較多調換
%W(North South East West) <==> ["North", "South", "East", "West"]
%s{String} 用於生成一個符號對象
%x{String} 用於履行String所代表的敕令
%x{ ls /usr/local } <==> `ls /usr/local`
PS:下面幾個%表現法頂用{}擴住了String,其實這個{} 只是一種朋分符,可以換成其余字符,好比(),那末%表現法就是%(String),固然還可所以其余字符,關於非括號類型的朋分符,閣下雙方要雷同, 如%!String!
上面我對這些表現法簡略舉幾個例子:
%{String}用於創立一個應用雙引號括起來的字符串
這個表現法與%Q{String}完整一樣,這邊直接句個例子看成果:
result = %{hello}
puts "result is: #{result}, Type is:#{result.class}"
成果: result is: hello, Type is:String
%Q{String}用於創立一個應用雙引號括起來的字符串
%q{String}用於創立一個應用單引號括起來的字符串
從解釋中可以看出這兩個表現法的差別就是一個應用雙引號,一個應用單引號。應用雙引號的字符串會對字符串中的變量做較多調換,而單引號則做較少的調換,具 體看例子。先看%Q{String}:
world = "world"
result = %Q{hello #{world}}
puts "result is: #{result}, Type is:#{result.class}"
成果: result is: hello world, Type is:String
換成%q{String}:
world = "world"
result = %q{hello #{world}}
puts "result is: #{result}, Type is:#{result.class}"
成果: result is: hello #{world}, Type is:String
從下面的成果可以看出,較少調換的情形下,#{world}被解析成了字符串,而不會去盤算這個變量中的值。
%r{String}用於創立一個正則表達式字面值
就像應用/reg/方法一樣,看代碼:
result = %r{world}
puts result =~ "hello world"
puts "result is: #{result}, Type is:#{result.class}"
成果: 6 result is: (?-mix:world), Type is:Regexp
可以看出,world從第6個字符開端婚配
%w{String}用於將一個字符串以空白字符切分紅一個字符串數組,停止較少調換
%W{String}用於將一個字符串以空白字符切分紅一個字符串數組,停止較多調換
這兩個應當是年夜家見過最多的,用這個方法結構數組,可以省下一些逗號,Ruby真 是會慣壞年夜家,今後年夜家都不消標點符號了。
異樣給一個簡略的例子:
result = %w{hello world}
puts "result is: #{result}, Type is:#{result.class}, length is:#{result.length}"
成果: result is: helloworld, Type is:Array, length is:2
%s{String}用於生成一個符號對象
直接先上代碼:
result = %s{hello world}
puts "result is: #{result}, Type is:#{result.class}"
sym = :"hello world"
puts "the two symbol is the same: #{sym == result}"
成果:
result is: hello world, Type is:Symbol
the two symbol is the same: true
可以看出,這兩中方法生成的symbol對象完整一樣
%x{String}用於履行String所代表的敕令
好比:
%x{notepad.exe}可以啟動windows下的記事本,這裡我就不列成果了(那是一個年夜家熟習的窗口)。