[英]Multiple xml elements in the same xml file
在xml文件中可以:
<target name="test">
<exec executable="app">
<arg value="run"/>
<arg value="stop"/>
</exec>
</target>
但是在xml文件中卻沒有(至少這是驗證所表明的):
<target name="test">
<exec executable="app">
<arg value="run"/>
<arg value="stop"/>
</exec>
</target>
<target name="test">
<exec executable="app">
<arg value="run"/>
<arg value="stop"/>
</exec>
</target>
為什么在同一個xml文件中一個接一個地包含多個目標元素是非法的?
“為什么”的問題很難回答。 在XML中,部分原因是這種方式,因為它在SGML中。 盡管可能的主要優點是執行單個文檔容器元素確實具有一些優點。 在根元素末尾可以有注釋和處理指令的事實,會破壞您知道何時到達末尾。
如果要在流上下文(例如日志文件)中使用XML格式(要在其中繼續添加元素),這會有些痛苦。
解決該問題的常用方法是觀察到具有多個頂級元素的文件不是格式正確的文檔,而是格式良好的外部解析實體 。 因此,如果您生成包含數十個頂級元素的文件log.xml
,則無法將其解析為文檔,但是可以制作一個引用外部已解析實體log.xml
靜態小型文檔,並且您將返回指定的區域。
wrapper.xml
<!DOCTYPE wrapper [
<!ENTITY thelog SYSTEM "log.xml">
]>
<wrapper>
&thelog;
</wrapper>
然后,如果您解析wrapper.xml
則解析器將構造一個帶有根元素wrapper
的文檔,該wrapper
包含文件log.xml
中的所有元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.