我有一个非常简单的XML片段,存储在需要更新的文件中 不幸的是,这是我需要更新的处理指令。
我可以使用XPath获取处理指令的内容,或至少部分内容吗?
例如:
<Include>
<?define Version="2.0"?>
</Include>
我需要获得“版本”的价值。
答案 0 :(得分:2)
我认为你不能得到'2.0'。您可以在单个值中获得“Version =”2.0“',然后手动从中提取”2.0“。它是xml规范的一部分。如果您希望获得2.0,请确保使用<define Version='2.0/>
(使用元素而不是处理指令)。
答案 1 :(得分:2)
引自here,
处理中的“属性” 说明实际上并非如此 属性 - 它们看起来像 他们。 Noramally人指的是这些 各种“属性”如 “伪属性”强调这一点 事实。至于XPath数据模型 关心,你唯一的信息 可以得到一个处理指令 是它的目标,它的价值和它的价值 节点树中的位置。
因此,您可以使用
访问节点本身/Include/processing-instruction('define')
但是所有这些都是Value
Version="2.0"
(作为字符串)的节点,您必须自己解析。
答案 2 :(得分:2)
这个XPath表达式:
substring-before(
substring-after(
/Include/processing-instruction('define'),
'Version="'
),
'"'
)
评估字符串:'2.0'