簡體   English   中英

同一xml文件中有多個xml元素

[英]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中的所有元素。

因為有效的xml文件應具有一個(只有一個)根元素。

請參閱Wikipedia的根元素文章或我從中提取此引用的W3C推薦論文

[定義:只有一個元素,稱為根元素或文檔元素,其中任何部分都沒有出現在任何其他元素的內容中。]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM