2013-05-12 25 views
1

我希望將使用Yahoo Pipes的TR中的3個相鄰TD元素的內容轉換爲以逗號分隔的值列表。來源:Epic Systems Hospitals從XPATH提取頁面提取子元素管道

HTML片段:

...

<table width="623" cellspacing="0" cellpadding="0" border="0"> 
    <colgroup> 
    <tbody> 
     <tr height="20"> 
     <td width="425" height="20">Institution 0</td> 
     <td width="134">Minneapolis</td> 
     <td width="64">MN</td> 
     </tr> 
     <tr height="20"> 
     <td height="20">Institution 1</td> 
     <td>Philadelphia</td> 
     <td>PA</td> 
     </tr> 

...

我用 「的XPath抓取頁面」 源使用XPath正確隔離TR元素= //tr[@height='20']

但是,我很難得到TD元素。對於我而言,我不知道應該使用哪個組件,所以我選擇了使用'special variable substitution'語法的子元素。不幸的是,${td.0.content}不起作用。

我不理解什麼?

**編輯**

我的目標是創建一個類似於XML流:

<institutions> 
    <institution name='Institution 0' city='Minneapolis' region='MN'/> 
    <institution name='Institution 1' city='Philadelphia' region='PA'/> 
    ... 
<institutions/> 

enter image description here

+0

從我的理解'xfetch'頁面發出'html5'內容(​​如您已選擇了該選項),也可以發出'strings' 。 「子元素」模塊有助於從層次結構中獲取數據,這些數據可以是XML或RSS源的形式。 – Bill 2013-05-12 19:19:15

+0

從我引用的頁面:「目前這個模塊將提取頁面並使用Tidy修復格式錯誤的標籤。」這不表示文檔已被轉換爲XHTML嗎? – craig 2013-05-13 11:51:57

回答

3

如果你總是有3個td單元格,你可以使用一個Loop運營商與String Builder裏面,並通過連接item.td.0,item.td.1,item.td.2建立一個字符串。

我創造了這樣一個例子你在這裏:

http://pipes.yahoo.com/pipes/pipe.info?_id=3d24486f7c6e8413dc6252ef37c2f086

+0

似乎可以將值插入到HTML流中,但流不能被重寫。它是否正確? – craig 2013-07-03 12:31:07

+1

是的,我也這麼認爲。無論如何,要小心,雅虎管道是非常麻煩的,所以不要指望一致和合理的行爲。 – janos 2013-07-03 17:04:02