2009-07-16 21 views
0

いくつかのxhtmlページがあります。このページのソースは、ブラウザに読み込まれる前に解析され、いくつかのXPathの位置が見つかります。その後、このページはブラウザに読み込まれ、JAVAScript経由で(いくつかのアクションで)すでに見つかっているXPathの位置にテキストを挿入します。問題は、JavaScript(jQuery)ではこのページのinnerHTML(HTML DOM)のみを取得でき、解析されたXHTML DOM(XML DOM)とは異なる点です。 HTML DOMではなく、XHTMLページのJavaScript XML DOMをどうやって取得できますか? 例(ページの一部):JavaScriptでXHTMLページを解析する際の問題

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

私はそれが/ DIV /テキスト()[1]が、ブラウザのコードのこの部分はHTMLに変換されますされますテキスト1のXPathの位置を見つけたいですDOM、そして次のようになります。

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

とテキスト1がDOMにアクセスするためのjQueryを使用しないでください[1]

答えて

0

/DIV/Pされるようになりました。その代わりに、JavascriptでXPathを使用するか、XPathを使用してXMLノードを照会できるようなライブラリを探してください。詳しくはMozilla Developer Center's Introduction to XPath in Javascriptをご覧ください。

+0

しかし、私はまた、単にJavaScriptを使用しようとしましたが、問題ページのXML DOMを取得することです...私はMozzila(Firebug)でこのページのDOMを見ても、私はソースXML DOMではなくページのHTML DOM表現を見ます。 –

+0

さて、HTMLとして解析されている限り、XPathを使用できない理由については、以下のDavidの答えをご覧ください。 XPathではなく、必要な情報にアクセスするためにDOMのさまざまなメソッドを使用することをお勧めします。 – Rahul

0

XHTMLをapplication/xhtml + xmlとして提供するか、the HTML compatibility guidelinesに従うように構成します。

ブラウザにHTML(text/htmlとして提供する)を伝えることはできず、XHTMLとして扱うことを期待します。

(そして段落ではなく、いくつかのテキストに続いて何も含まない段落ですナンセンスがどんなものなのか、意味が権利を取得しよう?)

+0

問題は、ページのソースを変更できないということです。なぜなら、TWiki用のいくつかのモジュール(Proxy経由)だからです。私はTWikiページを使用しています。このページのコンテンツはcontent = "text/html"と定義されていますが、すべてのページはXHTML 1.0有効です。 http://twiki.org/ –

+0

有効性は、適合性チェックの開始に過ぎません。 XHTML(とIEについて気にしてください)を使用する場合は、HTML互換性ガイドラインに準拠する必要があります。サービスがあなたに準拠したコードを与えていない場合は、それを固定するか、それを渡す前に自分で処理する必要があります。それは壊れている - それを修正し、それを回避しようとしないでください。 – Quentin

関連する問題