normalize,字面意思就是正規化,加上space大概意思就是空格的處理了。
官方解釋是這樣的:
通過去掉前導和尾隨空白並使用單個空格替換一系列空白字符,使空白標准化。如果省略了該參數,上下文節點的字符串值將標准化並返回。
.是當前節點。如果在需要字符串的地方使用它(例如作為參數normalize-space()),引擎會自動將節點轉換為節點的字符串值,對於元素來說,該元素是元素內連接的所有文本節點。
text() 另一方面僅選擇作為當前節點的直接子節點的文本節點。
例如,給定XML:
<a>Foo <b>Bar</b> lish </a>
假設<a>是你當前的節點,normalize-space(.)將返回Foo Bar lish,但normalize-space(text())會失敗,因為text()返回兩個文本節點(Foo和lish)的節點集,它normalize-space()不接受。
長話短說,如果你想標准化一個元素中的所有文本,請使用.。如果要選擇特定的文本節點,請使用text(),但請始終記住盡管名稱不同,但會text()返回一個節點集,如果節點集只有一個元素,它將自動轉換為字符串。
