2013-03-27 84 views
0

我下載了html表單,用htmlCleaner清理它。 最初它看起來像這樣(現在它很好地形成,但我不知道簡單的方法如何表達,我希望,這是足夠了):XPath表達式,兩個字符串在一個節點中

... 
<form action="complete" method="POST" enctype="multipart/form-data"> 
Please fill in your username: 
<input type="text" name="employee" /> 
</BR> 
Reason: 
<BR/> 
<textarea cols="50" rows="5" name="reason"></textarea> 
</BR> 
<input type="submit" value="Complete"> 
</form>.... 

是否有XPath表達式來提取「請填寫你的用戶名「和」理由「,但在兩個單獨的字符串? 此外,htmlCleaner不支持所有表達式,這裏有 - >list < - 可能的表達式。

感謝

+0

「兩個單獨的字符串」是什麼意思? – deadlock 2013-03-27 03:01:53

+0

我需要xpath表達式來提取**「請填寫您的用戶名:」**和/或**「原因:」**,但不是**「請填寫您的用戶名:原因:」**,其中I可以用'// form'做。 – toothbrush 2013-03-27 03:50:45

回答

0

你所需要的僅僅是:

//input[@name="employee"]/@value 
//input[@name="reason"]/@value 

或者(如果您需要在<form>元素文本):

//form/text()[1] 
//form/text()[2] 
+0

但輸入標籤已關閉,並且不包含我的線條,這些標籤位於

標籤中。 – toothbrush 2013-03-27 03:52:13

+0

在我的例子中,'// form/text()[1]'就像'// form'並且提取**「請填寫您的用戶名:原因:」**。 '// form/text()[2]'根本不起作用。 可能是因爲清潔的xml看起來不同,上面的示例適用於我的情況。 – toothbrush 2013-03-27 05:25:01

0

你不能因爲這兩塊你想提取的文本都是FORM和FORM的唯一孩子。如果他們每個都包含一個SPAN或DIV,你可以分別找到他們。

您可能可以單獨使用'child'和位置獲取它們

相關問題