問題タブ [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.
php - PHP 5.2.6 にアップグレードした後の問題
私はここで苦境に陥っています。PHP コードは以前は機能していましたが、PHP 5.2.6 にアップグレードしてから、次のようになりました。
ソースは次のとおりです。
オンラインでいくつかの調査を行った後、Zend拡張機能が原因である可能性があることがわかりました。これが私の Zend セットアップの外観です。
このプログラムは、Zend Scripting Language Engine を使用しています。 Zend Extension Manager v1.2.0、著作権 (c) 2003-2007、Zend Technologies による Zend Optimizer v3.3.3、著作権 (c) 1998-2007、Zend Technologies による
このコードをいくつかの新しい Windows システムでテストしましたが、すべて失敗しました。これにより、多くではないにしても、ほとんどのウェブホストが私が持っているものと同様の設定を使用している可能性があると私は信じています. php.ini
私が読んだ内容に基づく一般的な解決策は、Zend を無効にするか、ファイルの特定の領域をコメントアウトすることです。これは配布用のスクリプトの一部であるため、ほとんどの顧客は に直接アクセスしphp.ini
たり、Zend 拡張機能などの Web サーバー設定を変更するアクセス権を持っていません。
これをコードで解決するにはどうすればよいですか? 回避策はありますか? または、使用する代わりの方法はありDOMDocument
ますか?
php - SimpleXMLElementノードにHTMLコンテンツを追加できます
簡単な質問。HTMLデータをエンティティ形式に自動変換せずに、 SimpleXMLElement(または実際にはDOMDocument )ノードにHTMLのブロックを追加することは可能ですか?
たとえば、次のスニペットを取り上げます(ここでは、DOMDocumentを使用しますが、SimpleXMLElementはまったく同じように動作します)。
出力は次のとおりです。
ソースを見ると、次のことがわかります。
...HTMLブロックはエンティティ形式に自動変換されました。
ブロックをCDATAでラップしても、CDATAの山括弧も変換されるため、役に立ちません。
それで、この自動変換を実行せずにこのようなHTMLブロックを追加する方法はありますか?
ありがとう、m ^ e
php - HTTPを介して要求されたときに返されるアイテムが少ないRedditRSSフィード?
25項目のRSSフィードからデータを読み込もうとしています。HTTP経由でRSSファイルをリクエストすると、アイテムが20個しかないと表示されます。
他のサブレディットからのRSSフィードも試しましたが、同じ結果になりました。
php - DOMXPath が機能しないのはなぜですか?
DOMXPathを使用して XML ドキュメントを解析する PHP スクリプトを作成しようとしています。ただし、XPath クエリが何も返さないため、何かが足りないようです。そのため、非常に初歩的な XML ドキュメントを解析するためにスクリプトを簡素化しようとしましたが、それもうまくいきません。このスクリプトは、この XPath の例に基づいています。
問題は、$result の var_dump が常に次のようなものを返すことです。
...何も見つからなかったことを示しています。
php - PHPでネストされたリストのネストを解除する方法
私はこのようなネストされた順序付けられていないリストを持っています(簡略化されたバージョン/深さは可変です):
PHPを使用して、このネストされたリストを(この例では)3つのリストに「分解」する良い方法はありますか?
ご協力いただきありがとうございます
編集 :
予想される出力は次のようになります。
php - DOMDocument を ASCII 制御文字に適したものにする方法は?
解析中の HTML ドキュメントには、いくつかの ASCII 制御コードが含まれています。PHP の DOMDocument パーサーは、ノード内で ASCII 制御文字を検出すると、テキスト ノードを切り捨てることに気付きました。
Device Control 0x13
End of Medium 0x19
File Separator 0x1C
Group Separator 0x1D
これはバグですか、それとも機能ですか? DOMDocument を別の方法で動作させる方法はありますか? DOM 処理の前にこの文字を削除することにしましたが、それが正しい解決策であるかどうか疑問に思います。
php - 非ASCII文字をダンプするときのDOMDocumentの一貫性のない動作の説明は何ですか?
DOMDocument
PHPのsaveXML()
およびsaveHTML()
メソッドを使用すると、「ダンプ」動作が異なることに気付きました。著作権記号 (©) をダンプする簡単な例を次に示します。
<?
$domDoc = new DOMDocument();
$domDoc->loadHTML("©");
echo $domDoc->saveHTML();
echo $domDoc->saveXML();
echo $domDoc->saveXML($domDoc);
?>
3 つのダンプにより、次の 3 つの異なる出力が生成されます。
1 つ目は文字列を出力します©
2 つ目は文字エンティティを出力します©
3 つ目は著作権記号 ( U+00A9
)の UTF8 2 バイト コードを出力します
出力が異なるのはなぜですか?どの方法が使用されるかを予測可能に制御する方法はありますか?
php - XPath と DOMDocument を使用して 2 つの XML ドキュメントをマージするとエラーが発生する
約 1 年前、PHP の XPath と DOMDocument を使用して DOM を操作できるようにする、jQuery に着想を得たライブラリーを作成しました。私は最近、それをクリーンアップして、オープン ソース プロジェクトとして投稿したいと考えていました。ここ数日、PHP のネイティブ OO 機能の改善と実装に費やしてきました。
とにかく、別の XML ドキュメントを現在の XML ドキュメントとマージできる新しいメソッドを追加しようと思いました。ここでの問題は、このメソッドが 2 つの XPath 式を要求することです。最初のものは、既存のドキュメントにマージする要素をフェッチします。2 番目は、これらのマージされた要素の宛先パスを指定します。
この方法は、両方のパスから一致する要素を取得する際にうまく機能しますが、現在の DOM に外部要素をインポートする際に問題が発生しています。恐ろしい「Wrong Document Error」メッセージが表示され続けます。
私は自分が何をしているのか知っていると思っていましたが、間違っていたと思います。次のコードを見ると、最初に現在のドキュメントの一致する要素を反復し、次に外部ドキュメントの一致する要素を反復していることがわかります。
2 番目のネストされたループ内で、現在のドキュメントの宛先パスに各外部要素をマージしようとしています。
外部ノードを追加する前に現在のドキュメントに明確にインポートしているため、ここで何が間違っているのかわかりません。
ライブラリ全体は、次の Github リポジトリにあります。
http://github.com/wilhelm-murdoch/DomQuery
ハーフ!!!
soap - クラシック ASP を使用して「application/soap+xml」SOAP リクエストを送信する
これについての助けをいただければ幸いです。私はここ数日間それに取り組んできました。
以下は、これまでに取得したコードです。残念ながら、実行すると HTTP 415 エラーが発生します。コンテンツ タイプが 'text/xml; であるため、メッセージを処理できません。charset=UTF-8' は、予期されたタイプ 'application/soap+xml;' ではありませんでした。charset=utf-8' .
application/soap+xml の content-type を送信する必要があります。これは、Web サービスで許可されている唯一のタイプであるためです。従来の ASP で実行する必要があります。
「send」行を「objRequest.send objXMLDoc.XML」に変更しようとしましたが、これによりHTTP 400 Bad Requestエラーが発生します。