[PHP-users 23022]Re: XML DOM処理で要素追加
Masayuki Ataka
ataka @ alchemedia.jp
2004年 8月 19日 (木) 18:04:59 JST
安高です。
>
> fileA.xmlの先頭にエンティティ宣言があるのですが、そこにある
> DTDがエレメントの置き換えを行った後、展開されてしまいます。
> この展開をしないようにするにはどうすればいいのでしょうか?
以下のような感じで先日のテストスクリプト([PHP-users 23010])で実験
してみましたが(php4.3.4)、展開はされませんでした。
[fileA.xml]
-------------------------------------------------
<?xml version = "1.0" encoding="UTF-8"?>
<!DOCTYPE test [
<!ENTITY aaa SYSTEM "fileC.xml">
<!ENTITY bbb "hello">
]>
<EL1>
<EL2>
<EL3>&aaa;</EL3>
<EL4>&bbb;</EL4>
</EL2>
<EL6>
<EL7>ddd</EL7>
</EL6>
</EL1>
-------------------------------------------------
[fileB.xml]
-------------------------------------------------
<?xml version = "1.0" encoding="UTF-8"?>
<!DOCTYPE test [
<!ENTITY aaa SYSTEM "fileC.xml">
<!ENTITY bbb "hello">
]>
<EL1>
<EL2>
<EL3>&aaa;</EL3>
<EL4>&bbb;</EL4>
<EL5>&bbb;</EL5>
</EL2>
</EL1>
-------------------------------------------------
[fileC.xml]
-------------------------------------------------
<?xml version = "1.0" encoding="UTF-8"?>
<TT>
<XX>ENT</XX>
</TT>
-------------------------------------------------
[出力結果]
-------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [
<!ENTITY aaa SYSTEM "fileC.xml">
<!ENTITY bbb "hello">
]>
<EL1>
<EL2>
<EL3>&aaa;</EL3>
<EL4>&bbb;</EL4>
<EL5>&bbb;</EL5>
</EL2>
<EL6>
<EL7>ddd</EL7>
</EL6>
</EL1>
-------------------------------------------------
こういうことではなくて?
もう少し具体的なサンプルがあるとわかりいいかもしれません。
※phpバージョン違いでの動作違いの可能性も捨て切れませんが
PHP-users メーリングリストの案内