从昨天起我就一直在试着修理它。我尝试在我的xml文件中使用外部实体。当我在浏览器中打开文件时,应该是文件文本的位置为null。我在标记 ( &encjez; )之前使用了外部实体。在浏览器中,我看到了所有的好东西,但是应该是文件文本的位置看起来是。什么都没有。在我看来,我把所有的事情都做得很好。我不知道该怎么办。它不能给我任何安宁。请帮帮我。
//xml文件
<!DOCTYPE lista_filmów [
<!ELEMENT lista_filmów (film+)>
<!ELEMENT film (tytuł, rok_produkcji, reżyser)>
<!ATTLIST film category CDATA #REQUIRED>
<!ELEMENT reżyser (imie, nazwisko, płeć)>
<!ELEMENT tytuł (#PCDATA)>
<!ATTLIST tytuł jezyk CDATA #REQUIRED>
<!ELEMENT rok_produkcji (#PCDATA)>
<!ELEMENT imie (#PCDATA)>
<!ELEMENT nazwisko (#PCDATA)>
<!ELEMENT płeć (#PCDATA)>
<!ENTITY encjaw "Whedon" >
<!ENTITY encjez SYSTEM "file:///C:/Users/Legion/Desktop/kss/encjez.txt">
]>
<lista_filmów>
<!-- POCZATEK Joss Whedon-->
<!-- Film z encją predefiniowaną-->
<film category = "Akcja">
<tytuł jezyk = "ang">Avengers</tytuł>
<rok_produkcji>2012 < </rok_produkcji>
<reżyser>
<imie><![CDATA[ Joss <> ]]></imie>
<nazwisko>&encjaw;</nazwisko>
<płeć>&encjez;</płeć>
</reżyser>
</film>
</lista_filmów>发布于 2022-05-20 12:53:37
短答案
外部实体声明也可以放在方括号外。
<!DOCTYPE lista_filmów SYSTEM "file:///home/lmc/tmp/entity.dtd" [
<!ELEMENT lista_filmów (film+)>
<!ELEMENT film (tytuł, rok_produkcji, reżyser)>
<!ATTLIST film category CDATA #REQUIRED>
<!ELEMENT reżyser (imie, nazwisko, płeć)>
<!ELEMENT tytuł (#PCDATA)>
<!ATTLIST tytuł jezyk CDATA #REQUIRED>
<!ELEMENT rok_produkcji (#PCDATA)>
<!ELEMENT imie (#PCDATA)>
<!ELEMENT nazwisko (#PCDATA)>
<!ELEMENT płeć (#PCDATA)>
<!ENTITY encjaw "Whedon" >
]>
<lista_filmów>
<!-- POCZATEK Joss Whedon-->
<!-- Film z encją predefiniowaną-->
<film category = "Akcja">
<tytuł jezyk = "ang">Avengers</tytuł>
<rok_produkcji>2012 < </rok_produkcji>
<reżyser>
<imie><![CDATA[ Joss <> ]]></imie>
<nazwisko>&encjaw;</nazwisko>
<płeć>&encjez;</płeć>
</reżyser>
</film>
</lista_filmów>Entity.dtd包含:
<!ENTITY encjez "LMC">用xmllint在命令行上进行测试
xmllint --loaddtd --noent --xpath '//płeć' tmp.xml ; echo
<płeć>LMC</płeć>https://stackoverflow.com/questions/72317105
复制相似问题