【问题标题】:XML namespaces - default declarationXML 命名空间 - 默认声明
【发布时间】:2020-02-05 16:34:42
【问题描述】:

我有一个 XML,但有些人很难理解元素如何符合命名空间的条件。不幸的是,我找不到我的问题的有效答案。我有一个小例子可以让我更容易理解我的问题(对不起德语表达):

<?xml version="1.0" encoding="utf-8"?>
<Buchempfehlungen xmlns:book="http://aifb.kit.edu/buecher"
xmlns:pub="http://aifb.kit.edu/publisher">
    <Empfehlung>
        <book:Titel>Kleines Handbuch für den Umgang mit Unwissen</book:Titel>
        <book:ISBN>978-3442749775</book:ISBN>
        <Autor xmlns="http://aifb.kit.edu/buecher">
            <Name>Nassim Nicholas Taleb</Name>
            <Geburtsdatum>1. Januar 1960</Geburtsdatum>
        </Autor>
        <Verlag>
            <pub:Name>btb</pub:Name>
            <pub:Ort>München</pub:Ort>
        </Verlag>
    </Empfehlung>
</Buchempfehlungen>

现在我的问题是,元素“Verlag”分配给哪个命名空间?由于根元素中没有默认命名空间声明。但是 Autor 元素中有一个默认值,它与“Verlag”处于同一“级别”

这个“更深”的 default-ns 声明是否适用于整个文档或只是它的后代?

【问题讨论】:

    标签: xml namespaces


    【解决方案1】:

    以下 XPath 表达式返回 Verlag 元素。它的兄弟 Autor 默认命名空间不会影响它。只是它的后代,即 Name 和 Geburtsdatum,属于相同的默认命名空间 xmlns="http://aifb.kit.edu/buecher"。

    XPath

    /Buchempfehlungen/Empfehlung/Verlag
    

    输出

    <Verlag>
        <pub:Name>btb</pub:Name>
        <pub:Ort>München</pub:Ort>
    </Verlag>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 2011-01-27
      • 2023-03-17
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多