问题标签 [xpath-1.0]
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 - 如何使用 XSL 将所有内容包装在具有新节点的指定 XML 元素中?
因此,考虑到这个 XML:
...我怎样才能把它变成这样?
然后,每个实例都 <td>
将包含该 <BLAH>
元素,并且每个实例的内容都 <td>
将在新节点中。
...到目前为止,我有这个 XSL,它
<td>
用新节点包装每个元素,但在外面而不是在里面:
...这产生了这种不希望的结果:
在http://xslt.online-toolz.com/tools/xslt-transformation.php测试
xml - 如何从 XML 元素中去除文本、重新排列并与 XSLT 连接?
考虑以下 XML:
...如何转换这些元素的内容以获得此输出?
我正在尝试将 的内容
<first-name>
与 的内容 连接起来<last-name>
,并用一个空格分隔。
此外,不需要任何子元素
Authors
(如果可能,去掉 <name>
、 <first-name>
和 <last-name>
元素)。
这是我到目前为止的 XSL(不起作用):
到目前为止,我能够将 <contrib>
元素转换为 <Authors>
,但无法连接或剥离其子元素......
xml - How can I concatenate all of these XML tags into one larger tag of the same name with XSLT?
I am transforming this XML:
...with this XSL:
...and am getting this output:
However, I am trying to concatenate all of the
Author
tags into one larger Author
tag, so that the output would resemble this:
Do I need to use a for-each
loop in some way?
xml - 如何确定 XML 节点是否有最后一个不具有特定属性的祖先?
<p>
标签中的任何<body>
标签都应转换为Body_Text
.<p>
具有最后一个祖先<sec>
但没有属性“ ”的标签sec-type
应转换为Flush_Text
(此处覆盖第一个Body_Text
转换)。<p>
具有最后一个祖先<sec sec-type="irrelevant-attribute-name>
(具有属性“ ”)的标签sec-type
应转换为Body_Text
.
<sec><p>asdf</p></sec>
应转化为<sec><Flush_Text>asdf</Flush_Text></sec>
.
<sec sec-type="whatevs"><p>asdf</p></sec>
应该是<sec sec-type="whatevs"><Body_Text>asdf</Body_Text></sec>
。
此外,任何进一步嵌套到具有此
sec-type
属性的祖先都应该是Body_Text
:
<sec sec-type="whatevs"><sec><p>asdf</p></sec></sec>
应该是<sec sec-type="whatevs"><sec><Body_Text>asdf</Body_Text></sec>
。
这是我的 XML:
...这是我的 XSL,它不能正常工作:
...这是不正确的输出:
请注意,<p>
此示例中的第一个实例应转换为Body_Text
,但它正在转换为Flush_Text
。
c# - 在 SelectNodes 中使用 XPath 表达式
我见过这个问题,其中 Dimitre Novatchev 展示了一种ends-with
使用 XPath 1.0 表达式进行复制的方法。但是,我无法在SelectNodes
通话中实现它。
以前我在使用
它返回了我想要的所有节点加上一个我没有的节点,最后有一个额外的“s”(has-more-notifications
)。
所以我尝试使用 Dimitre 表达式,它给了我:
这惨败给了我的根节点notification-data-response
。
这是我第一次涉足 XPath,它看起来就像正则表达式——你要么理解它,要么不理解。
如何实现表达式,使其仅返回以 结尾的节点-notification
?
更新
输入样本:
xslt - 我可以根据变量属性在 XPath 中进行选择吗?
我认为这是不可能的,但希望有一个明确的答案。
XML:
然后在 XSL 中有一个主要书籍信息的简单转换,但我希望根据翻译 xml 翻译标题 - 这样的事情会起作用:
但我想用 XML 中的 agentlang 值替换属性 @French
我正在使用 MSXML / XSLT 1.0
有什么办法可以做到这一点?
xpath - 多次选择同一个父节点的 xpath 表达式
我有一些类似这样的 HTML:
是否可以基于两者返回<a name="some name"/>
元素两次<span/>
?对不起我的英语。
.net - 当属性已声明为父元素的属性时,使用 XPath 匹配名称格式为 ParentElement.Property 的元素
我有一个如下的 XML 文件:
我需要使用 XPath 匹配以下元素 - 除非有办法使用模式禁止它们存在,但我不相信有:
具体来说,我需要匹配元素名称采用以下格式的所有元素:
我在 .Net 中工作,不想为此使用外部库,所以如果可以使用 XPath 1.0 来实现,那将是理想的。如果它效率更高,我愿意使用匹配重复属性而不是元素的系统。
编辑:实际上没有问题。我该怎么做呢?
xml - XPath "in" 运算符
XPath 1.0 中是否有一个在 SQL 中充当“in”运算符的运算符?
c# - Xpath 搜索节点的后代
我有以下 c# 方法,该方法通过 xpath 对从 refNode 可访问的所有节点执行一些操作
我得到的输入 xml 之一是:
我需要选择一个 refNode <B>
(标记***
)并将其传递给 foo() 并使用一个 xpath 选择<B>
refNode 的所有后代节点,但不嵌套在任何其他<B>
节点内
例如,在给定的输入中,结果应包含:
我试过 .//B 给我 3 个结果和 .//B[not(ancesotr::B)] 返回 0 个结果。
我应该使用什么 Xpath 来获得所需的结果?
编辑
我可以更改方法 foo,但不能更改它的签名。此方法是库的一部分,并且被少数用户使用。上面给出的输入只是一个特定的实例,用户也可以将节点 A 作为 refnode 发送并请求所有 C 节点。
Edit2
@Dimitre Novatchev 的解决方案适用于我,如果我可以在不更改其签名的情况下获得 foo 内的 refnode 的 xpath,或者如果有某种方法可以指定this
节点,即应用 xpath 的节点。