想象一个 HTML 页面,它是一个具有重复结构的报告:
<html>
<body>
<h1>Big Hairy Report Page</h1>
<div class="customer">
<div class="customer_id">001</div>
<div class="customer_name">Joe Blough</div>
<div class="customer_addr">123 That Road</div>
<div class="customer_city">Smallville</div>
<div class="customer_state">Nebraska</div>
<div class="order_info">
<div class="shipping_details">
<ul>
<li>Large crate</li>
<li>Fragile</li>
<li>Express</li>
</ul>
</div>
<div class="order_item">Deluxe Hoodie</div>
<div class="payment">35.95</div>
<div class="order_id">000123456789</div>
</div>
<div class="comment">StackOverflow rocks!</div>
</div>
<div class="customer">
<div class="customer_id">002</div>
.... and so forth for a list of 150 customers
这种报表页面经常出现。我的目标是使用HTML::TreeBuilder::XPath
.
我知道做基础并将文件读入$tree。但是,如何才能简洁地遍历该树并获得每个客户的相关信息集群?例如,如何根据此信息创建按客户编号排序的地址标签列表?如果我想按州对所有客户信息进行排序怎么办?
我不是要整个 perl(我可以读取我的文件,输出到文件等)。我只需要帮助理解如何向 HTML::TreeBuilder::XPath 询问这些相关数据包,然后如何取消引用它们。如果用输出语句来表达这一点更容易(即,Joe Blough 订购了 1 件 Deluxe Hoodie 并留下了 1 条评论),那么这也很酷。
非常感谢那些解决这个问题的人,这对我来说似乎有点不知所措。