Wrap text
Report abuse
|
|
require 'rubygems'
require 'benchmark'
require 'hpricot'
require 'rexml/document'
XML = DATA.read
class Parse
def self.rexml
doc = REXML::Document.new(XML)
REXML::XPath.each(doc, '/*/*/*') do |node|
case node.name
when 'ItemQueryRs'
node.elements.each do |element|
rexml_fetch(element, 'ListID')
end
end
end
end
def self.hpricot
doc = Hpricot(XML)
response_element = doc.search('*[@requestid]').first
case response_element.name
when 'itemqueryrs'
doc.search('itemserviceret|itemnoninventoryret|itemotherchargeret|iteminventoryret').each do |e|
hpricot_fetch(doc/:listid)
end
end
end
# rexml helper
def self.rexml_fetch(node, name)
e = REXML::XPath.first(node, name)
e ? e.text : nil
end
# hpricot helper
def self.hpricot_fetch(path)
return nil if path.nil? || path.empty?
path = path.first if path.is_a?(Array)
path.innerHTML
end
end
TIMES = 10
Benchmark.bmbm do |x|
x.report('REXML') { TIMES.times { Parse.rexml } }
x.report('Hpricot') { TIMES.times { Parse.hpricot } }
end
__END__
240000-1071531214
2003-12-15T15:33:34-08:00
2003-12-15T15:34:51-08:00
1071531291
Delivery
Delivery
true
0
20000-999021789
Non
Delivery Service Fee (free for orders over $100)
15.00
610001-1071531179
Service
10000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Design
Design
true
0
20000-999021789
Non
Custom Landscape Design
55.00
150000-934380913
Landscaping Services:Design Services
20000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T08:59:12-08:00
934387152
Gardening
Gardening
true
0
20000-999021789
Non
Weekly gardening services
0.00
1F0000-934380913
Landscaping Services:Labor:Installation
30000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Installation
Installation
true
0
20000-999021789
Non
Installation of landscape design
35.00
1F0000-934380913
Landscaping Services:Labor:Installation
40000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Pest Control
Pest Control
true
0
20000-999021789
Non
Pest control services
0.00
200000-934380913
Landscaping Services:Labor:Maintenance & Repairs
2E0000-1071514896
2003-12-15T11:01:36-08:00
2003-12-15T14:42:51-08:00
1071528171
Tree Removal
Tree Removal
true
0
20000-999021789
Non
Tree Removal Service
0.00
610001-1071531179
Service
50000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Trimming
Trimming
true
0
20000-999021789
Non
Tree and shrub trimming
35.00
200000-934380913
Landscaping Services:Labor:Maintenance & Repairs
B0000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Concrete
Concrete
true
0
10000-999021789
Tax
Concrete for fountain installation
0.00
1B0000-934380913
Landscaping Services:Job Materials:Fountains & Garden Lighting
C0000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Deck Lumber
Deck Lumber
true
0
10000-999021789
Tax
Deck Lumber
0.00
1A0000-934380913
Landscaping Services:Job Materials:Decks & Patios
210000-1071530240
2003-12-15T15:17:20-08:00
2003-12-15T15:17:20-08:00
1071530240
Fertilizer
Fertilizer
true
0
10000-999021789
Tax
Parent Item - Do Not Use
0.00
600001-1071530232
Retail Sales
250000-1071523682
2003-12-15T13:28:02-08:00
2003-12-15T13:44:20-08:00
1071524660
Irrigation Hose
Irrigation Hose
true
0
10000-999021789
Tax
Parent Item Vinyl Irrigation Line- Do Not Purchase or Sell
0.00
690001-1071523679
Landscaping Services:Job Materials:Misc Materials
Vinyl Irrigation LineParent Item - Do Not Purchase or Sell
0.00
240000-934380913
Cost of Goods Sold
60000-934380912
Inventory Asset
-1
0
0.00
0
0
270000-1071524193
2003-12-15T13:36:33-08:00
2003-12-15T13:38:13-08:00
1071524293
1/2" Line
Irrigation Hose:1/2" Line
true
250000-1071523682
Irrigation Hose
1
10000-999021789
Tax
1/2" Vinyl Irrigation Line
0.15
690001-1071523679
Landscaping Services:Job Materials:Misc Materials
1/2" Vinyl Irrigation Line
0.12
240000-934380913
Cost of Goods Sold
60000-934380912
Inventory Asset
1500
1783
0.12
0
0
260000-1071523858
2003-12-15T13:30:58-08:00
2003-12-15T13:37:52-08:00
1071524272
1/4" Line
Irrigation Hose:1/4" Line
true
250000-1071523682
Irrigation Hose
1
10000-999021789
Tax
1/4" Vinyl Irrigation Line
0.10
690001-1071523679
Landscaping Services:Job Materials:Misc Materials
1/4" Vinyl Irrigation Line
0.07
240000-934380913
Cost of Goods Sold
60000-934380912
Inventory Asset
500
1235
0.07
0
0
280000-1071524260
2003-12-15T13:37:40-08:00
2003-12-15T13:37:40-08:00
1071524260
3/4" Line
Irrigation Hose:3/4" Line
true
250000-1071523682
Irrigation Hose
1
10000-999021789
Tax
3/4" Vinyl Irrigation Line
0.27
690001-1071523679
Landscaping Services:Job Materials:Misc Materials
3/4" Vinyl Irrigation Line
0.18
240000-934380913
Cost of Goods Sold
60000-934380912
Inventory Asset
1500
2670
0.18
0
0
60000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Lighting
Lighting
true
0
10000-999021789
Tax
Garden Lighting
0.00
1B0000-934380913
Landscaping Services:Job Materials:Fountains & Garden Lighting
Garden Lighting
0.00
240000-934380913
Cost of Goods Sold
60000-934380912
Inventory Asset
94
14.80
28
0
70000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Pump
Pump
true
0
10000-999021789
Tax
Fountain pump
75.00
1B0000-934380913
Landscaping Services:Job Materials:Fountains & Garden Lighting
Fountain pump #198-30
56.00
240000-934380913
Cost of Goods Sold
60000-934380912
Inventory Asset
48
53.93
0
0
80000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Soil
Soil
true
0
10000-999021789
Tax
Soil, 2 cubic ft bag
6.75
1C0000-934380913
Landscaping Services:Job Materials:Plants and Sod
Soil, 2 cubic ft bag
5.30
240000-934380913
Cost of Goods Sold
10000-934380927
Middlefield Nursery
60000-934380912
Inventory Asset
25
0
5.30
6
10
90000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Sprinkler Hds
Sprinkler Hds
true
0
10000-999021789
Tax
Sprinkler heads
0.00
1D0000-934380913
Landscaping Services:Job Materials:Sprinklers & Drip systems
Sprinkler head #BLS9081-09
0.00
240000-934380913
Cost of Goods Sold
60000-934380912
Inventory Asset
69
6.38
36
0
A0000-934380927
1999-08-11T07:15:27-08:00
1999-08-11T07:15:27-08:00
934380927
Sprkl pipes
Sprkl pipes
true
0
10000-999021789
Tax
Plastic sprinkler piping
2.75
1D0000-934380913
Landscaping Services:Job Materials:Sprinklers & Drip systems
Plastic sprinkler piping #1098-20
2.10
240000-934380913
Cost of Goods Sold
60000-934380912
Inventory Asset
250
826
2.10
115
0
|