XML 解析

XML 教程 · 第 5 章 · 8 次浏览

两个来源的 XML 合并时可能重名(都有 <title>),命名空间(Namespace)解决这个问题:给元素加前缀区分归属。

声明命名空间

xmlns:前缀="URI"。URI 只是唯一标识符,不一定要能访问。默认命名空间 xmlns="URI" 不带前缀。

使用

<c:book xmlns:c="http://example.com/books"> 里的 c: 前缀标记元素属于该命名空间。解析时用"命名空间+本地名"定位元素。

代码示例

<?xml version="1.0"?>
<root>
  <!-- 两个不同来源的 title -->
  <book xmlns:b="http://example.com/book">
    <b:title>XML 教程</b:title>
    <b:price>39.9</b:price>
  </book>
  <article xmlns:a="http://example.com/article">
    <a:title>编程心得</a:title>
    <a:author>张三</a:author>
  </article>
</root>

<!-- 默认命名空间 -->
<!-- <book xmlns="http://example.com/book">
  <title>无前缀但属于 book 命名空间</title>
</book> -->