xmlns属性会自动添加到节点

时间:2017-11-10 17:48:49

标签: xml xml-parsing

我是xml新手并且遇到了以下问题:

我有一个示例xml文件:

<?xml version="1.0" encoding="utf-8"?>
<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
 xmlns:ttp="http://www.w3.org/ns/ttml#parameter" xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
 ttp:profile="http://www.netflix.com/ns/ttml/profile/nflx-tt" ttp:frameRate="24"
 ttp:frameRateMultiplier="1000 1001" ttp:dropMode="nonDrop" ttp:timeBase="smpte">
  <head>
    <styling>
      <style xml:id="style.default" tts:fontFamily="Arial" tts:fontSize="100%" tts:fontStyle="normal" tts:fontWeight="normal" tts:backgroundColor="transparent" tts:color="white" />
    </styling>
    <layout>
      <region xml:id="region.after.center" tts:displayAlign="after" tts:textAlign="center" tts:origin="10% 10%" tts:extent="80% 80%" />
    </layout>
  </head>
  <body>
    <div xml:lang="en">
      <p begin="00:03:14:09" xml:id="p62" end="00:03:16:23" region="region.after.center" style="style.default">And that was it.<br />That was his story, right?</p>
      <p begin="00:03:18:14" xml:id="p63" end="00:03:19:16" region="region.after.center" style="style.default">
        <span tts:fontStyle="italic">So now...</span>
      </p>
    </div>
  </body>
</tt>

现在我有一个简单的xpath://*[starts-with(name(),'d')]所以它选择了div标签下的所有元素。

问题是在针对xml评估表达式时,我得到了 所有xmlns="http://www.w3.org/ns/ttml"代码中均为<p></p>,并且我在所有xmlns:tts="http://www.w3.org/ns/ttml#styling"代码中都获得了<span></span>。 Bewlo是返回内容的示例结果:

<p begin="00:00:34:23" xml:id="p2" end="00:00:36:00" region="region.after.center" style="style.default" xmlns="http://www.w3.org/ns/ttml">That was his story, right?</p>
<span tts:fontStyle="italic" xmlns:tts="http://www.w3.org/ns/ttml#styling">But there’s a woman there<br /> So now...</span>

那么,xml结构本身有什么问题吗?

xmlns="http://www.w3.org/ns/ttml"添加前缀时,我不会在<p></p>标记中获取前缀,但仍会在<span></span>标记中获取xmlns。

如果有人可以帮我解决这个问题,我感激不尽。提前致谢

请注意。我正在使用C#,这在评估xpath以提取匹配内容时会发生。

0 个答案:

没有答案