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