我理解XML和HTML之间的区别,但我不清楚一个特定的方面。 XML通常被描述为描述数据的语言和文档标记语言。由于前一种定义,XML经常与其他数据描述格式(如JSON)进行比较。由于后一种定义,XML 也经常与其他文档标记语言(如HTML)进行比较。
我意识到XML可以同时发挥作用,但是如果XML用作文档标记语言,那么文档文本是否可以在结束标记之间出现,就像它可以用HTML一样?
采用以下HTML:
<div>
Some text, and some <b>more</b> text.
</div>
忽略最初的XML声明,上面也是有效的XML吗?请注意,片段text.
未包含在任何标记中:它出现在两个结束标记之间。当然,这在HTML等标记语言中是必要的,其目标是格式化文本。但是我看到的大多数XML示例都用它来描述数据,例如:
<book>
<title>Blah blah</title>
<author>Blah blah</author>
</book>
在上面的示例中,文本永远不会出现在结束标记之间。
那么,文本(内容)是否允许出现在XML中的结束标记之间?
答案 0 :(得分:2)
是。这被称为"mixed content"
将照片记录为文档的要求之一是正确的 格式而不是数据格式。 JSON可能更适合作为数据 格式比XML,但因为它不允许混合内容,它不能 将XML替换为文档格式。
答案 1 :(得分:0)
这是有效的XML:
<div>
Some text, and some <b>more</b> text.
</div>
最后的text.
仍然包含在div
元素中。
故障:
Some text, and some - Text node within div
<b>more</b> - b element within div (with own text node)
text. - Text node within div
这些都是兄弟节点。
答案 2 :(得分:0)
忽略初始XML声明, 以上也是有效的XML?
是的,它仍然包含在div
标记内。
有关这方面的有用解释可在W3Schools中找到。
文本始终存储在文本节点中。一个 DOM处理中的常见错误是 导航到元素节点并期望 它包含文本。但是,甚至 最简单的元素节点有一个文本 它下的节点。例如,在 2005年,有一个元素 node(year),以及它下面的文本节点, 其中包含文字(2005)
因此,在您的示例中,它是text.
元素下div
的文本节点。
答案 3 :(得分:-1)
根据伊丽莎白卡斯特罗的“万维网XML”(2001) 对于名为CDATA
的特殊标签,答案是肯定的为了防止解析器将HTML作为XML读取,您可以将上面的示例包含在CDATA中,如下所示:
<element>
<![CDATA[
<div>
Some text, and some <b>more</b> text.
</div>
]]>
</element>
<![CDATA[
阻止文本被解析,直到达到结束]]>