[PHP-users 23023]Re: XML DOM処理で要素追加

Hitoshi Kawano kawano @ topics.or.jp
2004年 8月 19日 (木) 18:15:35 JST


河野です。

Ushiroさん、安高さんありがとうございます。

$doc = domxml_open_file("fileA.xml");
で読めました。

エンティティですが、次のようなサンプルになります。
<!DOCTYPE test [
	<!ENTITY % sample.dtd SYSTEM "../DTD/sample.dtd">
	%sample.dtd;
]>
ここで、sample.dtdが展開されてしまうのですが、もしおわかりでしたら
教えてください。

> > 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>
> -------------------------------------------------
>
> こういうことではなくて?
> もう少し具体的なサンプルがあるとわかりいいかもしれません。

_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/☆彡
河野 仁(Hitoshi Kawano)
E-Mail:kawano @ topics.or.jp
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/



PHP-users メーリングリストの案内