Đang chuẩn bị liên kết để tải về tài liệu:
programming XML by Example phần 6
Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
, nhưng nó có một cú pháp XML (như trái ngược với một cú pháp SGML). Nó cũng được thiết kế được mô-đun vì nó là thiết bị nhỏ hơn sẽ thực hiện chỉ một tập hợp các khuyến nghị. Theo W3C, những nền tảng này mới có thể chiếm đến 75% xem Web vào năm 2002. Những gì bạn có thể làm gì về | 250 Chapter 8 Alternative API SAX Listing 8.4 continued if args.length 2 System.out.println java com.psol.xbe.BestDeal filename delivery return ComparingMachine comparingMachine new ComparingMachine Integer.parseInt args 1 SAX2Internal sax2Internal new SAX2Internal comparingMachine try Parser parser ParserFactory.makeParser PARSER_NAME parser.setDocumentHandler sax2Internal parser.parse args 0 catch SAXException e Exception x e.getException if null l x throw x else throw e System.out.println The best deal is proposed by comparingMachine.getVendor System.out.println a comparingMachine.getProductName at comparingMachine.getPrice delivered in comparingMachine.getDelivery days Maintaining the State 251 I This class receives events from the SAX2Internal adapter and does the comparison required. This class holds the business logic. class ComparingMachine I properties we are collecting best price I protected double bestprice Double.MAX_VALUE I properties we are collecting delivery time I protected int proposedDelivery Integer.MAX_VALUE I properties we are collecting product and vendor names I protected String productName null vendorName null I target delivery value we refuse elements above this target I protected int targetDelivery I creates a ComparingMachine @param td the target for delivery I public ComparingMachine int td targetDelivery td continues 252 Chapter 8 Alternative API SAX Listing 8.4 continued called by SAX2Internal when it has found the product name @param name the product name 1 public void setProductName String name productName name called by SAX2Internal when it has found a price @param vendor vendor s name @param price price proposal @param delivery delivery time proposal 1 public void compare String vendor double price int delivery if delivery targetDelivery if bestPrice price bestPrice price vendorName vendor proposedDelivery delivery property accessor vendor s name @return the vendor with the cheapest offer so far 1 public String getvendor return .