問題タブ [domdocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
4080 参照

php - PHPで奇妙な文字を返すDOMDocumentからのnodeValue

だから私はHTMLページを解析しようとしていて、段落(<p>)を使用して探していますget_elements_by_tag_name('p');

問題は、を使用する$element->nodeValueと、奇妙な文字が返されることです。ドキュメントは最初に$htmlcurl を使用して読み込まれ、次に DOMDocument に読み込まれます。

文字セットに関係していると確信しています。

応答の例を次に示します。「aujourdã¢â€â™hui」。

前もって感謝します。

0 投票する
3 に答える
1016 参照

php - PHP: コードを整理せずに HTML ファイルをロードする

外部の .html ファイルをロードするために、loadhtml 関数 ( http://php.net/manual/en/domdocument.loadhtml.phpt ) を使用しています。ロードすると、コードが「整頓」されますが、これは望ましくありません。完全な HTML ドキュメントは必要ありません。.html に html スニペットのみが必要です。また、loadhtml ファイルで有効な html にしようとしないでください。

コードを整理しないように .html ファイルをロードするためのより良い機能はありますか?!

0 投票する
4 に答える
8647 参照

php - PHP DOMDocument->アンパサンド/少ない/多いを含むXMLを含むloadXML?

TEXTDATA に文字 & < および > を含む XML 文字列を解析しようとしています。通常、これらの文字は html エンコードする必要がありますが、私の場合はエンコードされていないため、次のメッセージが表示されます。

警告: DOMDocument::loadXML() [function.loadXML]: エンティティの属性名の解析中にエラーが発生しました... 警告: DOMDocument::loadXML() [function.loadXML]: 開始タグの末尾が見つかりませんでした ...

str_replace を使用してすべての & をエンコードできますが、それを < または > で行うと、有効な XML タグに対してもそれを行うことになります。

この問題の回避策を知っている人はいますか??

ありがとうございました!

0 投票する
1 に答える
363 参照

php - DOMDocument要素からstrtotimeを使用して日付を変換します

curlを使用してHTMLファイルをフェッチした後、DOMDocumentを使用して一部のデータを解析しています。コードは次のようになります

$varstrtotimeを使用してタイムスタンプに変換できません。理由はわかりません。必要な$cols->item(1)->nodeValue値が返されたことはわかっています。それを調べて別の変数に内破しようとしましたが、strtotimeを使用してタイムスタンプに変換することはできません。また、値を直接テストしました

strtotime('11 Jan 2010');

タイムスタンプが返されました。では、どうすればよいですか?

0 投票する
1 に答える
387 参照

php - rssフィードをphpdomDocumentオブジェクトに渡すときにエラーが発生しました

誰かが私を正しい方向に向けることができますか

私はcurlを使用してgooglepicasaapiフィードを取り戻しています。これはすべて、自動立ち上がりとデータのフェッチでうまく機能しますが、今度は、自分のサイトからタグ、写真、地理情報を追加、更新してみて、少し拡張したいと思います。

カールで戻ってきたフィードをどうやってdomDocumentに渡すことができますか?

これはうまくいきませんでした

直接エコーすると、FFでRSSページが表示されます

しかし

xml解析構文エラーが発生しますか?

また、ZENDとは関係のないPUT、DELETE、UPDATE操作のためにgoogle-apiを操作するためのリンクがあるが、別のPHPアプローチ、curlなどを使用している場合は、それは素晴らしいことです(より簡単なコード)

ありがとう、リチャード

0 投票する
3 に答える
772 参照

php - HTMLをDOMDocumentまたはSimpleXMLにインポートするときにインライン要素を削除しますか?

スクレイプしてローカルXMLファイルに変換するか、MySQLDBに追加する外部HTMLソースがあります。

外部ソースはほとんど正規化されており、(ある程度)セマンティックであるため、すべてのコンテンツまたはすべてのコンテンツなどXPATHを取得するために使用するだけです。問題は、これらのアイテムがまたはタグを使用して必要な要素のスタイルを設定することです。tdli<strong><b><i>

重要なのは特定のテキストに重点を置くことであり、開発者はブラウザのデフォルトではないCSSを使用したい場合があるため、これは技術的に意味論的です。

問題は、私が取得しようとしている実際のコンテンツがこのインライン要素の子と見なされるため、PHP拡張機能がsimplexmlまたはDOMDocumentDOMNodeそのように扱うことです。例えば:

結果は次のようになります。

明らかに、上記はsimplexmlが返すものではありませんが、上記は一般的な問題を反映しています。

DOMDocumentにすでに組み込まれているパラメーターを使用するか、非常に洗練されたXPathクエリを使用して、td子(存在する場合)から子孫のステータスを取り除き、すべてのコンテンツをのテキストとして処理する要素のコンテンツを取得する方法はありますか?照会された要素?

今のところ、私が持っている唯一の解決策は次のいずれかです。

a)foreach次のように各結果をチェックするループがあります。

b)regexを使用し<strong>て、HTML文字列からタグを削除してから、simplexmlやDOMDocumentなどのビルド済みクラスにインポートします。

0 投票する
3 に答える
1109 参照

php - エラーphpdomDocumentxml解析

このxmlをdomDocumentに取り込む方法を知っている人はいますか?

現在、最上位の要素が欠落しているというエラーがスローされます。私が見ているのは、フィードが最上位の要素であるため、それは私には謎です。これは、実行した場合にのみ発生し、domDocumentをスローした場合にのみ発生し、直接エコーアウトした場合には発生しません。xmlバリデーターもエラーを出しません。

これはxmlです:

これは動作しません

事前に感謝します、リチャード

0 投票する
2 に答える
7695 参照

php - PHP:XMLノードを検索し、子を挿入します

次の構造のxmlドキュメントがあります。

idフィールドの値1などのノード値を検索できるようにしたいと思います。次に、そのノードが見つかったら、親ノード(<item>)を選択し、その中に新しい子を挿入します。

domドキュメントの使用の概念は知っていますが、この場合の使用方法がわかりません。

0 投票する
5 に答える
9551 参照

php - PHP DOMDocumentは、DOMElementの子をHTML文字列に置き換えます

PHPを使用して、WYSIWYGエディターから渡されたHTML文字列を取得し、プリロードされたHTMLドキュメント内の要素の子を新しいHTMLに置き換えようとしています。

これまでのところ、IDで変更したい要素を特定するドキュメントを読み込んでいますが、HTMLをDOMElement内に配置できるものに変換するプロセスはわかりません。

0 投票する
2 に答える
7335 参照

php - PHPでDOMNodeからDOMDocumentを作成する

特定のソースからXML文字列を取得します。DOMDocumentオブジェクトを作成し、その中にXML文字列をロードします(DOMDocument :: loadXML()を使用)。次に、必要なノード(もちろん、DOMNode)が見つかるまで、さまざまなメソッド(DOMXPathなど)を使用してXMLドキュメントをナビゲートします。

このノードには多数の子孫があり、そのノード全体(およびその子孫)を取得して、そこから新しいDOMDocumentオブジェクトを作成したいと思います。これを行う方法がわかりません。新しいDOMDocumentを作成してDOMDocument::importNode()を使用しようとしましたが、これはDOMDocumentにすでにメインドキュメントノードが含まれている場合にのみ機能するようです。この場合、インポートされたノードはメインドキュメントノードの子として追加されます。これは私が望んでいることではありません-インポートされたノードをDOMDocumentメインノードにしたいと思います。

これを行うためのより簡単な方法(つまり、独自のドキュメントに変換したい元のXMLの部分を抽出するためのより簡単な方法)があるかもしれませんが、私はそれを知りません。私はDOMDocumentに比較的慣れていませんが、SimpleXMLElementを使用していて煩わしいほどです。