我總體上對本地人非常滿意XML檢視器在火狐瀏覽器中。
它清晰且有用地顯示有效的 XML 檔案(如下所示)。
XML 範例:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2020-03-17T15:57:23+00:00</lastmod>
</url>
</urlset>
但是,我注意到,一旦我將 XHTML 添加到 XML(使用正確的 XHTML 命名空間 - 請參閱下文),XML 檢視器在 Firefox 和 Chrome 中恢復以純文字顯示 XML:
XHTML 命名空間與元素:
- XHTML 命名空間:
xmlns:xhtml="http://www.w3.org/1999/xhtml"
- XHTML 元素:
<xhtml:link />
XML + XHTML 範例:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/</loc>
<lastmod>2020-03-17T15:57:23+00:00</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/" />
</url>
<url>
<loc>https://example.com/de/</loc>
<lastmod>2020-03-12T19:42:12+00:00</lastmod>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/" />
</url>
</urlset>
在最長的時間裡,我認為我在 XML 中引入了一個錯誤並使其失效。但我檢查了許多第三方 XML 驗證器,而且 XML 絕對有效。只是瀏覽器本機檢視器(顯然)無法處理包含在 XML 中的 XHTML。
在這種情況下我能做些什麼來幫助當地人嗎XML 檢視器在 Firefox 和 Chrome 中理解標記並將其解析為 XML,還是現在沒有什麼可做的,第三方軟體是唯一的答案?
答案1
Web 瀏覽器嘗試將您丟給它們的任何內容呈現為 HTML。只是,如果他們確定沒有 HTML,他們將呈現為純文字或 XML,後者在樹視圖中(如第一個範例所示)。值得注意的例外是 SVG 和 MathML,它們的渲染方式不同。
由於瀏覽器在第二個範例中偵測到 HTML,因此它切換到 HTML 視圖。
稍微解釋一下:
只要瀏覽器有元素的樣式訊息,它就會使用它們。 HTML 就是這種情況(預設樣式被硬編碼到瀏覽器中)。它會也就是這種情況,當瀏覽器透過處理指令發現與任何 XML 關聯的 CSS 時
<?xml-stylesheet href="style.css"?>
或透過內聯樣式(透過 HTMLstyle
元素)
<html:style type="text/css">
@namespace url("http://www.example.org/ns/example");
@namespace html url("http://www.w3.org/1999/xhtml");
paragraph {display: block;}
meta {display: none;}
html|style {display:none;}
html|script {display:none;}
</html:style>
在第二個範例中,它找到了此類樣式訊息,因為它找到了 HTML,它具有硬編碼和隱含的樣式,從而呈現了樣式。
當瀏覽器呈現 XML 文件時,它將呈現所有沒有預設樣式的元素,如內嵌內容。您認為這可能是它將內容顯示為純文字的原因。
如果它找到了 HTML 腳本元素,它就會執行其中的 Javascript。因此,樹視圖只是後備方案,而不是預設視圖。
如果您不喜歡這種行為,您可以嘗試尋找您的網頁瀏覽器是否支援配置開關,從而改變這種行為,但我不知道有任何改變。