问题标签 [xpath-3.1]
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-namespaces - 为 Saxon XPathCompiler 定义所有命名空间的最佳方法是什么?
当我们加载一个 XML 文件时,如果它使用命名空间,我们必须将所有这些命名空间传递给编译器。
首先,是否有一些调用告诉编译器读取 XML 文件本身并使用文件中声明的前缀/URI?我总是觉得很奇怪,我必须告诉编译器一些它可以自己解决的问题。
但是,如果确实需要这样做,那么以下是最好的方法吗?
完整的代码在SaxonQuestions.zip(减去许可证密钥)- XmlDatasource.java 中。
json - JSON to XML 有什么损失吗?
我们有一个接受 XML、JSON、SQL、OData 等数据的程序。对于 XML,我们使用 Saxon 及其 XPath 支持,效果非常好。
对于 JSON,我们使用不如 XPath 3.1 强大的jsonPath 库。并且 jsonPath 在某些极端情况下有点松鼠。
那么......如果我们将我们得到的 JSON 转换为 XML 然后使用 Saxon 会怎样?这种方法有限制吗?是否存在不会转换为 XML 的 JSON 结构,例如匿名数组?
saxon - 原子值数组可以是 XPath 查询中的节点名称吗?
对于查询“PROJECT[1]/PROPOSAL[1]/SOLUTION[1]/UNIT[1]/distinct-values(LANDING_DOOR_FRAME_FINISH_FRONT/LANDING_DOOR_FRAME_FINISH_FRONT_VALUE)”,如果 distinct-values() 返回一个值,但抛出否则例外。(顺便说一句,这个查询不是我的主意)。
在查询中将原子值作为节点名称是一个坏主意吗?或者没关系?如果可以,是否只有当它返回一个值时才可以?
为此从 Java 调用 Saxon。
xml - XPath 如何处理扩展名称冲突的属性?
鉴于以下文件...
...(Q1)这个 xpath 3.1 表达式的规范结果是什么..
...如果上下文节点是文档,并且命名空间绑定xmlns:n2="https://www.example.com"
附加到 xpath 处理器?
(Q2) 表情呢……
xmlns="https://www.example.com"
...在 xpath 处理器上具有命名空间绑定?
我试过的
我在各种不同的 xpath 实现中得到了不一致的结果,这表明这是 XPath 规范中的一个灰色区域。我什至经历了两个节点序列的返回,乍一看,这是一个意想不到的结果。
参考:
xpath - XPath 排序不是持久的?
我有以下 XML:
我需要对 ActivityNarrativeInformation 元素进行分组ActivityID
并ActivityNarrativeText
以这样的方式连接,它按以下方式排序ActivityNarrativeSequenceNumber
我设法使用以下 XPath 查询(XPath 3.1)对元素进行排序
sort(//ActivityNarrativeInformation[ActivityID=123456789], (), function($ActivityNarrativeSequenceNumber) {$ActivityNarrativeSequenceNumber})
所以结果看起来像这样:
然而,问题是,如果我想ActivityNarrativeText
通过在最后添加/ActivityNarrativeText
这样的
sort(//ActivityNarrativeInformation[ActivityID=123456789], (), function($ActivityNarrativeSequenceNumber) {$ActivityNarrativeSequenceNumber})/ActivityNarrativeText
或者
sort(//ActivityNarrativeInformation[ActivityID=123456789]/ActivityNarrativeText, (), function($seq) {$seq/ActivityNarrativeSequenceNumber})
订单丢失:
我究竟做错了什么?
saxon - 使用 xpath 3.1 fn:transform 创建 xsl:result-document 使用 saxon 9.9 EE
我想使用 xpath 3.1 fn:transform 创建一个输出文档。以下是 A.xsl。它在直接运行时(从氧气中)创建 A.xml:
结果:使用所需输出创建 A.xml:
现在,使用转换函数调用 A.xsl:
结果:A.xml 已创建但不完整。任何帮助表示赞赏。
xpath - 使用 XPath 将 URL 查询字符串解析为参数映射
{ 'param': 'value' }
在 XSLT/XPath 3.0 中将URL 查询字符串解析为映射的最易读的方法是什么?
注意:这是使用 XPath 从参数映射构建 URL 查询字符串中描述的函数的反函数。
更新:我没有提到该函数应该支持多值参数,例如a=1&a=2
,并理想地将它们解析为一个xs:string*
序列。
xpath - XPath 检索没有命名空间和前缀的 XML 标记值
我有以下 XML -
并尝试根据 TextId = ZC01 检索 TextLine 节点列表 -
<TextLine>ecom header text1</TextLine>
当我将 xpath 应用为 --> //m:properties[d:TextId = 'ZC01']/d:TextLine
我得到的输出为 -
<d:TextLine xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">ecom header text 1</d:TextLine>
如何删除前缀和命名空间?我尝试使用 local-name(),但是没有用 可能是用错了方法。谢谢您的帮助!
谢谢菅田
xslt-3.0 - 多个字符串替换
(将问题从“静态替换”更新为“动态替换”)
我想text
用所有规则中每次出现的键替换元素中的文本。value
替换文本是对该元素中属性的评估。
我应该采用哪种方法(使用最新的 Saxon HE)?
文本的结果应该是“你好唐老鸭”。</p>
添加:
我认为部分问题可以用 解决<xsl:evaluate>
,但这显然还不行(没有字符串替换):
结果是<data value="Hello"/>
。我看到的是 xpath 表达式的动态评估,从那里应该可以进行字符串替换。
现在我的步骤是将我的方法添加到 Martin 的答案中,但这将在 XPath 中混合 XSLT,这不会按照我想要的方式工作。