2013-03-27 85 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'和位置获取它们

相关问题