![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=1739677956-0VHLIkD98vhi3l84Fvs21d3OfKBNhkpO-0-71877af8841d4a5a1368c94cff84f2cc)
然后使用createElementNS而不是createElement来创建所有节点:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-2-i.jpg?sign=1739677956-buUCcrWM4fQnmYt0GHpNd2RZTdlaQyER-0-87c408650fbb4f7e0d4568730263c058)
如果节点具有带命名空间前缀的限定名,那么所有必需的带有xmlns前缀的属性都会被自动创建。例如,如果需要在HTML中包含SVG,那么就可以像下面这样构建元素:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-3-i.jpg?sign=1739677956-Rjhrk3EpoVW40REgcEykiWhk25BCSohr-0-899c8ea3f8ba2ffb508f99b94ef450f3)
当该元素被写入XML文件时,它会转变为:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-4-i.jpg?sign=1739677956-TST7mi3yIeJ1PVkYr1a2TtiGB6FmXma2-0-e8daf17a6892589996a070c5c6ca78e8)
如果需要设置的元素属性的名字位于命名空间中,那么可以使用Element类的setAttributeNS方法:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-5-i.jpg?sign=1739677956-8ikK2rD07Qnv1kpvkh54V3y9hzQRE10T-0-50fa047ce3ddebf6b167ce00455b087a)