問題タブ [xml-entities]
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 - <、>、&、'および"のみをXMLに変換しますか?
以前に解決されたこの質問の後で、特殊文字や二重引用符などに別の問題があるようです。
以前は、「&」などの記号をXMLの数値コードに変換するこの関数を使用していました。
だから私の入力が裁判官-FürstováMila&裁判官-FürstováMilaの場合
私は取得しますJudge-Fürstová Mila & Judge-Fürstová Mila
しかし、私はPDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
すべての特殊文字を処理するために使用しているので、私の入力が次のようなものである場合
裁判官-FürstováMila&裁判官-FürstováMila
今戻ってきます、
これはXMLでは正しくないと思います。
したがって、<、>、&、'および"のみを変換する必要があると思いますが、 üやáなどの他の特殊文字は変換しないでください。
どうすればこれができるのか、何かアイデアはありますか?または、問題を誤って考え/理解したことがあり、この問題を解決するための他のより良い方法がありますか?
編集:
<、>、&、'と"だけを変換する関数を変更しただけなので、間違っていました。
XMLはまだ以下の変換されたコードを受け入れません、
私はそれがそれをする他の理由を考えることができません!何か案は?
xhtml - xhtmlエンティティの追加
xhtml(ヘッダーはdoctype)として配信されるWebサイトがあります。サーバーからデータを取得します。このデータには、
を介してこれを含む文字列を設定しようとするとエラーが発生するエンティティが含まれている場合がありますinnerHTML
。サーバーサイドでこのすべてのアイテムを置き換えることができることをすでに知っていますが、知りたいのは次のとおりです。
サーバー上で置き換える代わりに、このエンティティをdoctype宣言に追加することもできますか?
編集:
言い換えれば、なぜこれを行うのですか?
うまくいかない?
python - lxml.etree のような xml.etree で外部エンティティを解決する方法
以下を使用して XML を解析するスクリプトがありますlxml.etree
。
私は解決する必要があり、解決する必要がload_dtd=True
ありresolve_entities=True
ます:&emptyEntry;
globals.xml
とglobals.xml
lxml
今、非標準から標準に移行したいと思いxml.etree
ます。しかし、 と は でサポートされていないため、これは私のファイルでは失敗load_dtd=True
しresolve_entities=True
ますxml.etree
。
xml.etree
これらのエンティティを解決する方法はありますか?
php - 他のファイルで定義された名前付きエンティティを持つ PHP の DomDocument で DocBook XML ファイルをロードする方法は?
オンライン ドキュメント の PHP リポジトリから XML ファイルを読み込もうとしています。これは DocBook 標準によるものです。
ただし、XML ファイルをロードすると、次のようなエラーが発生します。
警告: DOMDocument::load(): エンティティ 'reftitle.intro' が定義されていません
そのエラーはある程度理解できますが、修正するのに問題があります。外部エンティティ ローダー コールバック ( libxml_set_external_entity_loader
) を試してみましたが、ファイル自体に対して 1 回しか呼び出されません。
したがって、どういうわけか、DOMDocument に a) これらの未定義エンティティを無視するか、b) これらのエンティティを提供するように指示する必要があると思います。
language-defs.ent
DTD 内のようなこれらすべてのエンティティを含むという名前のファイルがあります。
しかし、私はそれを利用する方法がわかりません。多分それはちょうどその日の時間です。
html - Lua を使用した数値 XML エンティティのエスケープ解除
数値 HTML/XML エンティティのエスケープを解除するための適切な実装は何
ですか?
単体テストとして表現:
php - XML エンティティと PHP SimpleXMLElement の出力がわかりません
XML でエンティティを使用していますが、結果がわかりません。
外部エンティティを呼び出す XML ファイルがあります。これは config.xml です。
ファイル totalInstances.xml は次のとおりです。
PHP では、クラス SimpleXMLElement を使用してファイル config.xml をロードします。
次に、var_dump を使用して変数 $config を出力しましたが、ここに私が理解できないことがあります。
ノード「nombre」を含む単純な「totalInstances」ノードがあると予想していました。何が起こるのですか ?ありがとうございます。
edit : 詳細については、ファイル totalInstances.xml に 1 つしかないのに、「totalInstances」という名前のオブジェクトが 3 つある理由がわかりません。私はこの出力を期待していました:
また、出力の「[]」の間の数字が何を意味するのかわかりません。
java - Java RegEx: すべての xml 文字をエンティティ番号に置き換えます
ActionScript で記述した関数を Java に移植しようとしていますが、少し問題があります。以下の関数を含めました。質問 #375420 に対するこの回答を見つけましたが、本当に別のクラスを作成する必要がありますか? ありがとう。
入力
出力
アップデート
誰かが疑問に思っている場合、これが私の解決策です。シュリ・ハルシャ・チラカパティに感謝します。
xml - XML 非同期エンティティは検証の問題を引き起こします -- どうすればそれを回避できますか?
私は静的な HTML ページを生成しますが、これを行う最善の方法は XML を Linq に使用することであることがわかりました。これにより、ドキュメントの操作が JavaScript/jQuery と非常によく似たものになります。
AddThis ボタンを自分の Web サイトに追加し、次の行で XmlException が発生したことを除けば、これまでのところ問題なく動作しています。
例外は次のとおりです。
「=」は予期しないトークンです。予期されるトークンは「;」です。行 69、位置 114。
http://www.xmlvalidation.comで行を実行したところ、次の結果が得られました。
110 エンティティ「async」への参照は「;」で終わらなければなりません デリミタ。
「非同期」エンティティまたはそれを回避する方法に関する情報を見つけようとして、Google を数分間検索しましたが、次のページのように、XML には 5 つのエンティティしかないと主張する多くの文書があります: http://www.quackit .com/xml/tutorial/xml_entities.cfm
どうすればこのエンティティから逃れることができますか?
おまけの質問: 非同期エンティティとは何ですか? また、オンラインでほとんど文書化されていないのはなぜですか?
php - デコードされたエンティティを含む SimpleXML
PHPでSimpleXMLを作成して、HTML/XMLエンティティをそれぞれの文字に置き換えるにはどうすればよいですか?
次の XML ドキュメントが文字列になっているとします。
明らかに、SimpleXml を にデコードする&
必要があり&
ます。デフォルトでは行いません。私はこれらの2つの方法を試しましたが、どちらもうまくいきませんでした:
XML エンティティをデコードする最良の方法は何ですか? XMLパーサーがそれを行うべきだと思います.解析html_entity_decode
前に実行することは避けたいです(実際、どちらも機能しません)。これは文字列のエンコーディングに問題があるのでしょうか? もしそうなら、どうすればそれを追跡して修正できますか?
xml - XmlParser が文字の 16 進コード文字列を Unicode に変換するのはなぜですか?
私の Grails アプリケーションでは、Groovy のXmlParserを使用して XML ファイルを解析しています。私の XML ファイルの属性の 1 つの値は、文字の 16 進コードに等しい文字列です。その文字列をデータベースに保存したい:
Ñ
残念ながら、属性メソッドはÑ文字を返し、実際にデータベースに格納されるのは ですc391
。フィールドが読み戻されると、望ましくないÑ文字も取得されます。
データベースに 16 進コードを文字列として保存し、16 進コードとして読み戻されるようにするにはどうすればよいですか?
更新 #1:
これが私にとって問題である理由は、XML ファイルをデータベースに読み取った後、それを元どおりに再構築できなければならないからです。追加の問題は、問題のフィールドが常に文字の 16 進コードであるとは限らないことです。任意の文字列である可能性があります。
更新 #2:
拡張された 16 進コード形式で文字を書き戻すことができる限り、文字がデータベースにどのように格納されているかは問題ではないと思います。Groovy MarkupBuilderを使用してデータベースから XML ファイルを再構築していますが、デフォルトでこれが行われない理由がわかりません。
更新 #3:
カスタムの MySQL ダイアレクトを上書きgetTableTypeString
しましたが、それが何かの助けになったようです。少なくとも、MySQL に渡す値は、データベースに格納される値です。
独自のバージョンのgroovy.util.XmlParserも作成しました。私のバージョンは、私が変更した方法をgroovy.util.XmlParser
除いて、ほぼ正確に複製されています。startElement
これに:
これにより、16 進コード要素の正確なテキストをデータベースに格納できます。
現在、2 つ、おそらく 3 つの新しい問題があります。
データベースに保存されている正確な値でファイルを再作成します。これまでは を使用していましたが
MarkupBuilder
、アンパサンドで余分なエンコーディングを行っているため、XML 文字列を手動で 破棄して構築することでおそらくこれを回避できるため、値Ñ
が書き出されてしまいますが、むしろそうしたくありません。&#xD1;
MarkupBuilder
Saxon-HE 9.4 プロセッサを使用して XML ファイルに対して XSLT 変換を実行すると、一部の 16 進コード値がÿ
ÿ
のような値に変更されますが、その他の値は変更されません。™
これが問題になるかどうかはまだわかりませんが、ファイルを再作成するときは
ANSI
、元のファイルに使用されているエンコーディングであるため、エンコーディングにしたいと考えています。