問題タブ [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.
xml - ENTITY を oXygen に導入すると、Xerces の「要素型 ... を宣言する必要があります」というエラーが発生する
次の非常に単純な XML ファイルがあります (この質問の目的のために、元のファイルから大幅に削除されています)。
ファイルtest.dtd
は存在しますが、この質問の目的のために、空です。
問題は、oXygen XML エディターがエラーをスローすることです。
%entities;
上記の行から行または記号を削除しても%
、oXygen は実際にはエンティティ ファイルを解析していないため、エラーはスローされません (したがって、明らかに、本物のエンティティが導入されると、それらへの参照は失敗します)。残念ながら、私が行った調査によると、Xerces はさまざまな理由でこのエラーをスローすることが示唆されており、この場合の問題を絞り込むことはできません。
エンティティが存在しない場合でも、エンティティが導入されたときにこのエラーがスローされるのはなぜですか? また、どうすればよいですか?
oXygen v10.3、それが重要な場合 (私の会社は 5 年前のソフトウェアのライセンスのみを取得しています :-( )
php - text() を使用して XSLT のカスタム エンティティ名を照合する
XML ドキュメント内のテキストを一致させるために使用<xsl:template match="m:*/text()">
しています。これは、プレーン テキストと既知のエンティティに対して正常に機能します。つまり、 のようなエンティティ&
や Unicode エンティティに対して正常に機能しπ
ます。
ただし、機能していないのは、カスタム エンティティ名の一致です。たとえばπ
、XML ドキュメントにエンティティがあり、 を使用して一致させる必要がありますtext()
。何らかの理由で、そのエンティティをテキストとして扱わないため、何も一致しません。
XML ドキュメントと XSLT ドキュメントの Doctype 宣言でエンティティ名を宣言したことに注意してください。
<!DOCTYPE xsl:stylesheet [<!ENTITY pi "π">]>
カスタム エンティティ名を一致させるための正しいアプローチですかtext()
、それとも別の関数を使用する必要がありますか? (エンティティ名の宣言で何か間違ったことをしたのでしょうか?)
ありがとう
編集
XML
XSLT
変数は 3 回出力される$content
はずですが、出力されるのは 3 回だけtest
ですπ
。
PHPによる処理
java - XXEとBILLION LAUGHS
xxe と 10 億の笑いは xmlpullfactory を使用して可能ですか?以下の xml コードを試しました
kxml2-2.3.0.jarを使用した以下のJavaコードを使用して上記のxmlファイルを解析
GOT OUTPUT AS
無視できる空白:
文書型宣言:
無視できる空白: 開始タグ: 作成者
エンティティ リファレンス: js
エンティティ参照値: null
終了タグ: author 無視できる空白:
ドキュメントの終了: null
しかし、エンティティ参照値をjosmithとして取得したいのですが、何が問題になりますか?
c# - XML 値内でのみ ' をエスケープする
以下は、私のxmlが現在どのように見えるかの例です:
ただし、次のようにする必要があります。
現在、私のコードは次のようになっています。
したがって、「'」をエスケープする必要がありますが、アポストロフィが存在する値要素内のみです。
c# - サポートされていないエンティティ参照を含む US-ASCII でエンコードされた XML の処理
この質問はこのページの続きです
プロセス:関連するプロセス。XML ファイルを開き、特定のノードでいくつかの変更を行い、別の場所に保存します。
問題に直面しています: XML でいくつかの変更を行った後に保存すると、サポートされていないエンティティ参照が にö
変換されö
ます。ソースのエンティティをそのまま保持したい ( ö
)
とは同じ文字ですが、ソース xml にそのまま保持する必要がありますö
。ö
XML ソース
期待される出力
今すぐ取得する
マイコード