我使用XML-Simple以及来解析带有外部实体的文档。我宣布我的实体如下:
<!ENTITY chap1 SYSTEM "chapter-1.xml">我指的是同一个目录中的另一个文件。
但是,它正在搜索我的当前工作目录中的文件,而不是根文档的位置。
404 File `/u/egge/chapter-1.xml' does not exist
Handler couldn't resolve external entity at line 35, column 2, byte 1040
error in processing external entity reference at line 35, column 2, byte 1040 at /perl5/PROJ/XML-Parser/2.36-2.0.1-5.10-64/lib/perl5/XML/Parser.pm line 187如何让它使用根文档的目录而不是我的CWD?
发布于 2013-10-15 15:37:15
实用工具xmllint具有-noent标志,它将扩展根文档的实体引用。如果您找不到替代方案,则始终可以使用以下内容快速重写输入文件:
xmllint --noent $input.xml > expanded.xml
它还具有预先计算整个XML文件的优点,而不是每次运行时都这样做。
https://stackoverflow.com/questions/19258601
复制相似问题