2012-08-11 2 views
1

다음 XPath를 사용하여 HTML 페이지에서 일부 데이터를 선택합니다. 내가 선택하는 것을 시도하고 값 사이에 약간의 공간이 있습니다 내 XPath 표현식은 값을 따기입니다Xpath 텍스트 사이에 공백을 제거했습니다.

example=value1 value2  value3 

을하지만,이 같은 텍스트 사이에 여분의 공백을 제거 : 나는 여분 있는지 확인하려면 어떻게

value1 value2 value3 

을 공백은 제거되지 않습니까?

내 XPath는 :

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

샘플 HTML 내가 값을 따기하고있는 곳에서 : 나는 R92392 12132 sdlasldkaskl로 값을 얻고있다

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

참고. 그러나 나는 텍스트 사이의 공간을 보존하고 싶다.

+0

몇 가지 샘플 XML 입력을 제공 할 수 있습니까? –

+0

xpath에는 문제가 없습니다. Xpath 올바른지 및 가치있는 텍스트 가져 오는 있지만 그것은 텍스트 사이의 공백을 스트립. – ankit

+0

user743914, 질문을 편집하고 정확히 원하는 것을 지정하십시오. 사람들은 추측하려는 것에 관심이 없습니다. –

답변

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

+0

Sicco가 명확하게 (XPath 표현의 결과로, Dimitre에 의해 두 번째로) 일어나지 않는 상태를 나타냅니다. 그러므로 문제는 다른 곳에있다. 렌더링 된 HTML의 속성에서 공백이 유지 되었습니까? –

+1

@ user743914, Xpath가 "text1 text2 text3'"을 (를) 반환하지 않습니다. XPath 표현식의 평가는'value' 속성의 변경되지 않은 문자열 값을 생성합니다. 구문 론적으로 불법적 인 XPath 표현을 보여 주었고 결과를 얻지 못했습니다. 실제로 도움이되지 않습니다. –

관련 문제