Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用XPath获取XML格式的处理指令的内容吗?_Xml_Xpath - Fatal编程技术网

我可以使用XPath获取XML格式的处理指令的内容吗?

我可以使用XPath获取XML格式的处理指令的内容吗?,xml,xpath,Xml,Xpath,我有一个非常简单的XML片段,它存储在需要更新的文件中。 不幸的是,这是一个我需要更新的处理指令 我是否可以使用XPath获取处理指令的内容,或者至少是部分内容 例如: <Include> <?define Version="2.0"?> </Include> 我需要得到“Version”的值。我认为你不能得到“2.0”。您可以在单个值中获取“Version=”2.0“,然后从中手动提取“2.0”。它是xml规范的一部分。如果希望获得2.0,请

我有一个非常简单的XML片段,它存储在需要更新的文件中。
不幸的是,这是一个我需要更新的处理指令

我是否可以使用XPath获取处理指令的内容,或者至少是部分内容

例如:

<Include>
   <?define Version="2.0"?>
</Include>  


我需要得到“Version”的值。我认为你不能得到“2.0”。您可以在单个值中获取“Version=”2.0“,然后从中手动提取“2.0”。它是xml规范的一部分。如果希望获得2.0,请确保使用

加工中的“属性” 指令实际上并不是 属性——它们看起来就像 他们。诺拉马里人指的是这些 “属性”的种类 “伪属性”强调了这一点 事实至于XPath数据模型 是有关,你唯一的信息 可以了解一条处理指令 是它的目标、价值和价值 节点树中的位置

因此,您可以使用

/Include/processing-instruction('define')
但得到的只是一个值为
Version=“2.0”
(作为字符串)的节点,然后必须自己解析它。

此XPath表达式:

substring-before(
   substring-after(
      /Include/processing-instruction('define'),
      'Version="'
   ),
   '"'
)
计算字符串:
'2.0'