2009-07-16 5 views
0

일부 xhtml 페이지가 있습니다.이 페이지의 소스는 브라우저에서로드되기 전에 구문 분석되어 일부 XPath 위치를 찾습니다. 그렇다면이 페이지는 브라우저에로드되었고 JAVAScript를 통해 (일부 동작에서) 이미 발견 된 XPath 위치에 텍스트를 삽입하고 싶습니다. 문제는 JavaScript (jQuery)에서이 페이지의 innerHTML (HTML DOM) 만 가져올 수 있으며 구문 분석 된 XHTML DOM (XML DOM)과 다릅니다. HTML DOM이 아닌 XHTML 페이지의 JavaScript XML DOM을 어떻게 얻을 수 있습니까? 예 (페이지의 일부) :자바 스크립트를 통한 XHTML 페이지 구문 분석 문제

<div><p /> 
    Text1 
    <p /> 
    Text2 
</div> 

난이/DIV/텍스트() [1],하지만 브라우저에서 코드의이 부분은 HTML로 변환됩니다됩니다 텍스트 1의 XPath는 위치를 찾으려면 DOM, 그리고 다음과 같습니다

<div> 
    <p>Text1</p> 
    <p>Text2</p> 
</div> 

및 텍스트 1 [1]

답변

0

는 DOM에 액세스하기 위해 jQuery를 사용하지 마십시오/DIV/P에 지금이다. 대신 Javascript에서 XPath를 사용하거나 XPath를 사용하여 XML 노드를 쿼리 할 수있는 라이브러리를 찾으십시오. Mozilla Developer Center's Introduction to XPath in Javascript에서 자세한 내용을 읽어보십시오.

+0

그러나 나는 또한 단지 자바 스크립트를 사용하는 것을 시도했다 (그리고 의미를 제대로하려고 말도 안되는 어떤 종류의 단락에없는 일부 텍스트 뒤에 아무것도 포함하지 단락은?입니다)하지만 문제 페이지의 XML DOM을 얻는 것입니다 ... Mozzila (Firebug)에서이 페이지의 DOM을 볼 때조차도, source-xml dom이 아닌 HTML DOM 표현을 볼 수 있습니다. –

+0

글쎄, XPath가 HTML로 분석되는 한 XPath를 사용할 수없는 이유는 아래의 David의 대답을 참조하십시오. 어떤 경우에는 DOM의 다양한 메소드를 사용하여 XPath가 아닌 필요한 정보에 액세스하는 것이 좋습니다. – Rahul

0

XHTML을 application/xhtml + xml로 제공하거나 the HTML compatibility guidelines을 따르도록 구성하십시오.

브라우저에 HTML (text/html로 제공함)을 알릴 수없고 XHTML로 간주 할 수 있습니다.

,

+0

문제는, 내가 페이지의 소스를 바꿀 수 없다는 것입니다. TWiki를위한 (프록시를 통한) 모듈이기 때문입니다. TWiki 페이지를 사용하는데이 페이지의 내용은 content = "text/html"로 정의되어 있지만 모든 페이지는 XHTML 1.0 유효합니다. http://twiki.org/ –

+0

유효성은 적합성 검사의 시작일뿐입니다. XHTML (그리고 IE에 관심)을 사용하려면 HTML 호환성 가이드 라인을 준수해야합니다. 서비스가 당신에게 순응 코드를주지 않는다면, 코드를 고정 시키거나 그것을 처리하기 전에 직접 처리해야합니다. 고장 났어요 - 고쳐주세요. 주위를 둘러 보려고하지 마십시오. – Quentin