2009-10-23 2 views
2

나는 <html><body><div id="message">Hello World!</div></body></html> 과 같은 문자열이 있는데, HTML을 직접 구문 분석하지 않고 #message 요소의 콘텐츠를 가져오고 싶습니다.도마뱀에서 문자열로 문서 만들기

나는 도마뱀 붙이기 문자열에서 문서 객체를 만들 수 있다고 생각했는데 (이것은 파이어 폭스에 추가 된 것입니다.) 간단한 방법은 없습니다.

나는 createDocument 메서드가있는 것으로 확인되었지만 문자열을 사용하지는 않습니다. 나는 텍스트에서 <html> 부분을 제거해야하고, 다시 나는 물건을 취하기 시작합니다.

누구든지 아이디어가 있습니까? 감사.

편집 : 이것은 나를 위해 작동하는 것 같다 :

doc = document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html", null); 
doc.firstChild.innerHTML = '<html><body><div id="message">Hello World!</div></body></html>'; 
node = doc.getElementById("message"); 
alert(node.innerHTML); 
+1

수정 사항과 함께 새로운 답변을 추가해야합니다. – brianpeiris

답변

2

는 어디에서 문자열을받을 수 있나요? XML이라면 DOMParser을 사용하면됩니다.

그렇지 않으면 HTML 문서 (https://developer.mozilla.org/en/Parsing_HTML_From_Chrome)를 만들어야합니다.

createDocument 작품을 사용한다는 사실은 의심스러운 것처럼 보입니다. 왜냐하면 사람들은 이번에는 더 복잡한 해결책을 사용했기 때문입니다.

+0

xhr을 통해 원격 소스에서 가져옵니다. –

+0

domparser 메소드도 시도해 볼 것이고, 효과가 있고 더 간단하다면 궁금 할 것입니다. 고맙습니다. –

+0

네,하지만 원격 소스가 데이터를 반환하는 형식은 누가 제어합니까? – Nickolay

0

항상 그 구문이 있습니까? 그렇다면 정규식을 사용하지 않는 이유는 무엇입니까?

+0

내 생각은 정확히 – pstanton

+0

그 구문 일 수도 있고 그렇지 않을 수도 있습니다. –

3

내 자신의 질문에 대답 좋아하지 않는다, 그러나 이것은 나를 위해 일한 것으로 보인다 :

doc = document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html", null); 
doc.firstChild.innerHTML = '<html><body><div id="message">Hello World!</div></body></html>'; 
node = doc.getElementById("message"); 
alert(node.innerHTML); 
+0

변수를 선언하는 것을 잊지 마십시오. – kangax

+0

메소드 시작 부분에 쉼표로 구분 된 단일 행으로 선언됩니다. 우리는 jslint를 사용합니다. –

관련 문제