2012-08-11 98 views
1

我正在使用以下XPath從html頁面中選取一些數據。我想挑值在之間的一些空間:Xpath刪除文本間的空格

example=value1 value2  value3 

我的XPath表達式是採摘的價值,但刪除文本之間多餘的空格是這樣的:

value1 value2 value3 

如何確保額外的空間不被刪除?

我的XPath:

//*something/div/input[1]/@value 

樣本HTML從那裏我挑選值:

<input type="radio" name='radio1' value="R92392 12132       sdlasldkaskl     " id='some' > 

注意,我所獲得的價值爲R92392 12132 sdlasldkaskl。但我想要保留文本之間的空格。

+0

您能否提供一些示例XML輸入? – 2012-08-11 11:19:02

+0

這不是xpath的問題。 Xpath是正確的,我正在獲取文本的值,但它是剝離文本之間的空間。 – ankit 2012-08-11 12:49:14

+0

user743914,請編輯問題並指定您想要的內容 - 人們對嘗試猜測無興趣。 – 2012-08-11 15:18:23

回答

5

我的XPath引擎不會刪除空格,所以它必須歸因於PHP設置。我並不完全瞭解您的情況,因爲您沒有提供太多的代碼,但以下內容可能適用於您:

$doc->preserveWhiteSpace = true; // This setting should fix it 
$doc->Load('document.xml'); 
$xpath = new DOMXPath($doc); 
$query = '//div/input[1]/@value'; 
+0

不,它是文字之間的空格。數值類似於:text1 text2 text3。 Xpath正在返回text1 text2 text3。我想要保存之間的空間。 – ankit 2012-08-11 12:51:24

+0

哪些Sicco明確表示沒有發生(由於XPath表達式,並由Dimitre借調);因此問題在別處。你確定空白被保存在呈現的HTML中的屬性中嗎? – 2012-08-11 15:32:17

+1

@ user743914,Xpath不是「返回text1 text2 text3」。正如我的回答所示,評估XPath表達式會生成'value'屬性的未更改的字符串值。您向我們展示了一個語法上非法的XPath表達式,並且您沒有向我們展示您想要獲得的結果 - 實際上沒有幫助。 – 2012-08-11 17:52:29