- Java核心技术·卷Ⅱ:高级特性(原书第10版)
- (美)凯S.霍斯特曼
- 209字
- 2024-12-20 22:36:06
3.7.2 带命名空间的文档
如果要使用命名空间,那么创建文档的过程就会稍微有些差异。
首先,需要将生成器工厂设置为是命名空间感知的,然后再创建生成器:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-i.jpg?sign=1739552445-pewjEjgKEIfBVG7Dni3uzU2cRgonNnWw-0-c1b302b35f9cdae1fce4b387f4cd9184)
然后使用createElementNS而不是createElement来创建所有节点:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-2-i.jpg?sign=1739552445-YCrKHlblczUcIdFFuNOwQnyYW3vYEBaX-0-c535d988993e13b0afb629b28c25d05a)
如果节点具有带命名空间前缀的限定名,那么所有必需的带有xmlns前缀的属性都会被自动创建。例如,如果需要在HTML中包含SVG,那么就可以像下面这样构建元素:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-3-i.jpg?sign=1739552445-C8j3OtOwTsvEJEkiTCFsD4qErP7n2J7v-0-8af83ca0b3c76fa0fef2c5a8f4e9594f)
当该元素被写入XML文件时,它会转变为:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-4-i.jpg?sign=1739552445-D37CdVu002OhtOQpT8FEEMUiDMZrQC27-0-8c5d23799ee95adf95b699fecfa768e4)
如果需要设置的元素属性的名字位于命名空间中,那么可以使用Element类的setAttributeNS方法:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/171-5-i.jpg?sign=1739552445-fHzAuPwpdmuybDZiKgVRECV3HAhGrusA-0-5fa196401d83a0bbcf98cf78ee35ae5a)