- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
最近,我学到了什么Clark notation在 XML 中。如果 XML 看起来像这样:
<srw:searchRetrieveResponse
xmlns:srw="http://www.loc.gov/zing/srw/"
...
<srw:record>
...
<dc:title>The C programming language</dc:title>
...
</srw:record>
与 lxml
在 Python 中,你可以这样解析它:
record_title = r.find('.//{http://purl.org/dc/elements/1.1/}title')
构造 .//{namespace uri}tag name
对我来说是新的。我认为这对于您不熟悉的数据集非常有用,因为您只需要知道 namespace uri(位于 XML header 中)、前缀和标签名称即可找到它。因此,您无需了解 XML 树。
现在,我通常使用浏览器为 XML 编写 XSL:只需在示例 XML 文件的顶部指定 XSL 表,双击它,浏览器就会显示 XSL 的内容。那么我可以在 XSL/XSLT 中使用 Clark 表示法吗?据我所知,答案是否定的。一些谷歌搜索让我找到了支持它的 PHP 和 Perl 库,但显然,XSLT 不支持。
我错过了什么吗?如果我不支持,那么 XSLT 不支持它的原因可能是什么?
最佳答案
好吧,任何 XSLT/XPath 版本 ( https://www.w3.org/TR/xpath-10/#path-abbrev ) 都支持像 .//
这样的路径,或者更确切地说,以 .//
开头的路径。
对于基于 Clark 表示法的标准化支持,您需要求助于 XPath/XSLT 3 https://www.w3.org/TR/xpath-31/#doc-xpath31-URIQualifiedName它作为 Q{http://example.com}foo
在命名空间 http://example.com 中选择具有本地名称
。 foo
的元素
当然,那个语法和你的语法都不使用任何前缀,它直接使用 namespace 而不是任何前缀。使用前缀,例如pf:foo
在任何版本的 XSLT/XPath 中都受支持,在 XSLT 中,您只需确保样式表将前缀与例如绑定(bind)。 xmlns:pf="http://example.com"
到正确的命名空间,使用 XPath 取决于特定的 API 是否以及如何执行此操作。
这是一个基于您的输入的示例,用于显示 XSLT 3 中的一些选项:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
version="3.0">
<xsl:output indent="yes"/>
<xsl:template match="/">
<four-ways-to-select>
<enhanced-qname>
<xsl:copy-of select="//Q{http://purl.org/dc/elements/1.1/}title"/>
</enhanced-qname>
<namespace-declaration>
<xsl:copy-of select="//dc:title" xmlns:dc="http://purl.org/dc/elements/1.1/"/>
</namespace-declaration>
<xpath-default-namespace>
<xsl:copy-of select="//title" xpath-default-namespace="http://purl.org/dc/elements/1.1/"/>
</xpath-default-namespace>
<namespace-wildcard>
<xsl:copy-of select="//*:title"/>
</namespace-wildcard>
</four-ways-to-select>
</xsl:template>
</xsl:stylesheet>
关于xml - XSLT 是否支持 Clark 表示法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55179239/
注意:描述比预期的要长一些。您知道使用此网格实现此算法的可读吗?请让我知道! 我正在尝试实现 Catmull-Clark subdivision使用 Matlab,因为稍后必须将结果与已经在 Matl
最近,我学到了什么Clark notation在 XML 中。如果 XML 看起来像这样: ... The C programming language ... 与 lxm
我正在尝试实现 Clarke and Wright algorithm构建初始 VRP 解决方案。它似乎运行正常,但由于某种原因,我得到的解决方案的质量不是预期的。 这是我计算储蓄元素的代码: pri
我已经实现了 Clarke-Wright 启发法来解决 TSP(基于伪代码 here )。我已附上我在 Matlab 中的实现。然而,它对我来说不够快,并且需要 O(n2) 空间(因为成对距离)。我想
我正在开展一个元素并尝试使用 Keith Clark 的纯 CSS 视差滚动技术。 ( http://keithclark.co.uk/articles/pure-css-parallax-websi
所以我用 Keith Clark's pure CSS parallax 建立了一个网站主意。它看起来不错,但我很好奇是否有人想出如何在 iOS 上允许惯性/动量滚动。 Here is my site
我是一名优秀的程序员,十分优秀!