[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 メーリングリストの案内