![Java核心技术·卷Ⅱ:高级特性(原书第10版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/937/34339937/b_34339937.jpg)
上QQ阅读APP看书,第一时间看更新
3.7.2 带命名空间的文档
如果要使用命名空间,那么创建文档的过程就会稍微有些差异。
首先,需要将生成器工厂设置为是命名空间感知的,然后再创建生成器:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-i.jpg?sign=1738862966-gW16HwTrtAnL6fUHrec3Aj0pUO9DPEh8-0-5cff9f6e1f7dd81eb340bedc9c88723d)
然后使用createElementNS而不是createElement来创建所有节点:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-2-i.jpg?sign=1738862966-IgieSopFKQI1uQlaxPIOUetnFQ5eLxKX-0-ec3f3a6f2ab10e4c2917294fbfac6f21)
如果节点具有带命名空间前缀的限定名,那么所有必需的带有xmlns前缀的属性都会被自动创建。例如,如果需要在HTML中包含SVG,那么就可以像下面这样构建元素:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-3-i.jpg?sign=1738862966-uVBs8iPFdkyYa9h58lxQVQaAMeJfEFbn-0-b0736014decd006d68707495baaefb0c)
当该元素被写入XML文件时,它会转变为:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-4-i.jpg?sign=1738862966-SNcUS5iFsNwGYEBrzCNBUemsVYElvWil-0-fd63db57af977ce157479fe7f328bdef)
如果需要设置的元素属性的名字位于命名空间中,那么可以使用Element类的setAttributeNS方法:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-5-i.jpg?sign=1738862966-inJkGmGsoBIYB2MESEiiLcXhs6CO7Tht-0-2e716582e6f405ec06d2874c53999da8)