問題タブ [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 投票する
3 に答える
9019 参照

php - DOMDocument: 重複する要素 ID を無視する

一部のページ コンテンツ (Tidy を介して実行されていますが、これが問題の原因である場合は必要ありません) をDOMDocumentusingに入れてDOMDocument::loadHTMLいます。

さまざまなエラーが発生しています。

ID x はエンティティ、行 X で既に定義されています

DOMDocument重複する要素 ID を (または Tidy) で無視または削除する方法はありますDOMDocumentか?

ありがとう。:)

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

php - PHPでDOMDocumentにstandalone=yesを書き込む方法は?

PHP5 を使用して XML ファイルを作成しています。次のようなコードがあります。

問題は、作成された XML コードが次のようなルート ノードで始まることです。

しかし、私はそれが次のようになりたいです:

$doc で何らかの関数を呼び出す必要があると思いますが、どの関数かわかりませんか?

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

php - DOMXPathを使用して、ノードの位置を維持しながらノードを置き換えます

さて、先日、HTMLまたはXMLベースの文字列のDOMを操作するjQueryの機能をある程度模倣するDOMDOCUMENTのヘルパークラスを作成するというちょっとしたアイデアがありました。cssセレクターの代わりに、XPathが使用されます。例えば:

これにより、結果のすべてのノードでコールバック関数が呼び出されます。残念ながら、PHPバージョン<5.3.xはラムダ関数またはクロージャをサポートしていないため、当面は次のようなことを行う必要があります。

現在、すべてが順調に進んでおり、このプロジェクトは多くの人に役立つと思いますが、私はその機能の1つにとらわれています。jQueryの「replace」メソッドを模倣しようとしています。次のコードを使用すると、次の方法を適用することでこれを非常に簡単に実行できます。

このメソッドの背後にあるコードは次のとおりです。

今、これは動作します。結果として得られるすべての要素を、複製されたバージョンの$Contentに置き換えます。問題は、それらが親ノードの子リストの一番下に追加されることです。問題は、DOM内の元の位置を維持したまま、この要素を複製して他の要素を置き換えるにはどうすればよいかということです。

交換するノードをリバースエンジニアリングすることを考えていました。基本的に、$ Contentから値、属性、要素名をコピーしますが、ターゲット要素の実際の要素名を変更することはできません。

リフレクションは可能性がありますが、これを行うためのより簡単な方法が必要です。

誰か?

0 投票する
6 に答える
15260 参照

php - PHP で DOMDocument オブジェクトをデバッグする

PHP で大規模で複雑な DOMDocument オブジェクトをデバッグしようとしています。理想的には、DOMDocument を配列のような形式で出力できればいいのですが。

DoMDocument:

これは出力します

一方、出力したい

またはそのようなもの。なぜ便利なデバッグや出力がないのですか?!?

0 投票する
7 に答える
22661 参照

php - PHP での DOMDocument によるインデント

を使用DOMDocumentして新しい XML ファイルを生成していますが、人間の読者が簡単に理解できるように、ファイルの出力を適切にインデントしたいと考えています。

たとえば、次のDOMDocumentデータを出力する場合:

XML ファイルを次のようにします。

私は答えを探し回っていましたが、私が見つけたものはすべて、このように空白を制御しようとしているようです:

しかし、これは何もしないようです。おそらく、これは XML を読み取るときにのみ機能しますか? 新しいドキュメントを作成しようとしていることを覚えておいてください。

これを行うために組み込まれているものはありDOMDocumentますか?または、これを簡単に実現できる機能はありますか?

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

php - Php の DOMDocument が html エンティティをエンコードしないようにするにはどうすればよいですか?

Php の DOMDocument を使用して、アンカーの href 属性を文字列に置き換える関数があります。ここにスニペットがあります:

問題は、loadHTML($text) が $text を doctype、html、body などのタグで囲んでいることです。loadHTML() の代わりにこれを行うことで、これを回避しようとしました:

残念ながら、これはすべてのエンティティ (アンカーを含む) をエンコードします。これをオフにする方法を知っている人はいますか?私はすでにドキュメントを徹底的に調べてハッキングしようとしましたが、理解できません。

ありがとう!:)

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

php - PHP DOMDocument:謎のキャラクターを窒息させるloadHTMLFile:RS

phpのDOMDocument->LoadHTMLFile('test.html');を使用する 36行目のコンテンツのエラーを報告して、エラーを返し続けます。文字を次々と削除すると、原因は明らかに空のスペースであることがわかります。その文を別のエディター(Editra)でコピー/貼り付けすると、奇妙なRS文字が表示されました。

それは何ですか、そしてもっと重要なことに、どうすればそれが再び起こるのを避けることができますか?

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

php - DomDocument が RSS フィードの「リンク」要素を追加できない

DomDocument を使用して PHP で RSS フィードを作成しようとしていますが、 http: //domain.com のようなノードを作成しようとするたびにスクリプトが失敗します

次のエラーが表示されます..

XML 解析エラー: タグが一致しません。期待される: 。場所: http://daddydonkey/feed.rss 行番号 4、列 58: これは説明です -------------------------------- ------------------------------^

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

php - DOMを保持しながらXMLを解析するときに詳細なエラー情報を取得するにはどうすればよいですか?

私は自分のサイトの管理者がXMLをテキストエリアに追加してデータベーステーブルに保存するために送信できるWebフォームを作成していますが、XMLを解析する最良の方法について少し混乱しています。

PHPスクリプトはXMLを解析する必要があり、解析エラーがある場合は、フォームを送信した管理者に、パーサーが停止したエラーメッセージと行/列を返す必要があります。解析後、DOMにアクセスして、XPathを使用してノードと属性の存在を確認する必要があります。

andを使用するxml_create_parser()xml_parse()、falseが返された場合に取得した詳細なエラー情報を取得できます。ただし、XMLを解析した後、XMLのDOMにアクセスできません。DOMDocument::loadXML()私が読んだものから、私が使用する場合、それは解析エラーの例外をスローせず、PHPログにそれらを出力するだけです。

私が最初に試しxml_parse()、それが成功した場合DOMDocument::loadXML()は、ファイルがほとんど10KB未満で、いくつかは10〜20KBであることを考慮して、実行するとパフォーマンスが大幅に低下しますか?誰かがより良い方法を知っていますか?