问题标签 [xml-namespaces]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - Delphi - IXMLNode 中的命名空间 URI 无效
我正在尝试解析来自 SOAP Web 服务的响应,但部分数据包含无效的 xmlns 元素,我认为这给我带来了无穷无尽的麻烦。
我正在使用的 XML 部分如下所示。
soap:Body 节点中的 xmlns URI 是可以的,它在 ResponseData 中是无效的,它指向一个不存在的文档。应该注意的是,网络服务不在我的控制之下,所以修复这个问题是不可能的:(。
目前,我的 Delphi (2007) 代码看起来像这样。
在上面的代码中,我不得不将空白命名空间 url 添加到FindNode('ResponseData','')
代码中,因为没有它,它不会找到任何东西并返回 nil,但是它会返回预期的 XML。
问题是下一个查找节点ChildNodes.FindNode('ResponseDataResult','')
(
我怀疑这是由于缺少命名空间,所以我试图删除它,但收到更多错误,说它是一个只读属性。
不管有没有 NS,是否有删除 xmlns 属性或选择节点?还是我要解决这个问题?
c# - 加载 XDocument 时可以使用预定义的名称空间吗?
我经常需要处理包含命名空间元素但不声明命名空间的 XML 文档。例如:
因为前缀“a”从未分配过命名空间 URI,所以文档是无效的。当我使用以下代码加载这样的 XML 文档时:
它抛出一个异常,说明(正确地)该文档包含一个未声明的命名空间并且格式不正确。
那么,我可以为解析器预定义默认命名空间前缀 -> 命名空间 URI 对吗?XMLNamespaceManager 看起来很有希望,但不知道如何将其应用于这种情况(或者如果可以的话)。
xslt - XSLT 根标记命名空间而不是元素属性命名空间
我有一个 XSL 文件来传输另一个 XSL 文件。我希望命名空间声明位于根标记上,而不是在每个元素上重复!
这是我的样式表:
它输出如下内容:
我如何将命名空间声明强制到结果的根标签上?!
c# - 我可以避免在 LINQ to XML 中使用完全限定的元素名称吗?
假设我使用以下 XML 字符串调用 XElement.Parse():
在查询元素时,我不得不使用完全限定的元素名称,因为该 XML 文档xmlns
在其根中包含一个属性。这需要繁琐的 XName 实例创建:
当我真正想要的只是简单的时候,
有没有办法让 LINQ to XML假定一个特定的命名空间,所以我不必继续指定它?
sql - 如何使用“nodes”命令在 SQL XML 查询中使用命名空间?
我正在尝试从以下 XML 查询中查询字段(这实际上是一个 Web 服务调用):
使用以下 XML 查询:
它运行但不返回任何结果!
如果我构建相同的查询但删除名称空间的东西,那么它就可以工作。例如,以下工作正常:
<xmlDoc> <Request> <SubscriberCode>543253</SubscriberCode> <CompanyCode>54325</CompanyCode> <BranchName>TestBranchName</BranchName> [...]
SQL查询:
-- 为 MITS 定义一个命名空间,以便我们可以使用 MITS 命名空间。WITH XMLNAMESPACES('[schema]' AS soap2, DEFAULT '[schema]')
选择 TransactionID, T2.Loc.query('data(Request/SubscriberCode)') as 'SubscriberCode' FROM TempWorksRequest CROSS APPLY RequestXML.nodes('xmlDoc') as T2(Loc)
有任何想法吗?
xslt - XSL - 复制元素但删除未使用的命名空间
我有一些 XML 声明了一个仅用于属性的命名空间,如下所示:
我想使用 XSL 创建所选节点及其值的副本 - 摆脱属性。所以我想要的输出是:
我有一些 XSL 几乎可以做到这一点,但我似乎无法阻止它将命名空间声明放在输出的顶级元素中。我的 XSL 是:
输出的第一个元素是<b xmlns:x="http://tempuri.com">
而不是<b>
。我尝试在 XSL 中声明命名空间并将前缀放在exclude-result-prefixes
列表中,但这似乎没有任何效果。我究竟做错了什么?
更新:我发现通过在 XSL 中声明命名空间并使用extension-element-prefixes
属性有效,但这似乎不对!我想我可以使用它,但我想知道为什么exclude-result-prefixes
它不起作用!
更新:实际上,这个extension-element-prefixes
解决方案似乎只适用于 XMLSpy 的内置 XSLT 引擎,而不适用于 MSXML。
html - Facebook Connect 和 HTML5、xmlns 可用吗?
Facebook Connect 和他们的“Social Widgets”文档提到您需要在将要使用它的页面上xmlns
的标签中添加一个属性。<html>
我知道这xmlns
是针对 XML 名称间距的,并且以前在 XHTML 中使用过。然而,最近所有关于 HTML4 / HTML5 的讨论,在没有阅读整个规范的情况下,该xmlns
属性是否与有效的 HTML5 兼容?HTML4 怎么样?
如果我查看了文档中对此的明显提及,我很抱歉......指出来?
编辑:几个文档参考/引用:
xml - X包括模式/命名空间验证?
我正在尝试使用 XML Includes 来帮助管理需要供人和机器使用的大型 XML 结构。
但是在尝试构建可以针对现有模式进行验证的 XML 文件时遇到了无数问题。这是我正在尝试做的一个简化示例。
我的“main.xml”文件没有通过验证。
“child.xml”文件作为独立文件验证良好。
这是我的架构:
我的问题几乎显然与命名空间有关,但我不知道如何解决我的问题。
json - 带有自定义命名空间的 YQL XML 输出
我正在尝试使用 YQL 解析来自 Yahoo Pipes 的 JSON 提要以将其转换为 XML。我的查询是:
“从 json 中选择 *,其中 url=' http://pipes.yahoo.com/pipes/pipe.run?_id=[pipe-id]&_render=json '”
问题是原始管道正在解析一个 RSS 提要,其中填充了都柏林核心标签(例如:dc:title、dc:source 等)。XML 输出无法处理这些标签,Yahoo Pipes 也无法正确删除它们。每当我尝试在任何浏览器中运行 XML 输出时,它都会因为文档开头的缺失而出现问题。
如何从 YQL 的 XML 输出中定义自定义命名空间?