我有一個非常簡單的XML代碼片段,存儲在需要更新的文件中。
不幸的是,它是一個處理指令,我需要更新。我可以使用XPath獲取XML中處理指令的內容嗎?
我可以使用XPath來獲取處理指令的內容,或至少是其中的一部分嗎?
例如:
<Include>
<?define Version="2.0"?>
</Include>
我需要得到 「版本」 的值。
我有一個非常簡單的XML代碼片段,存儲在需要更新的文件中。
不幸的是,它是一個處理指令,我需要更新。我可以使用XPath獲取XML中處理指令的內容嗎?
我可以使用XPath來獲取處理指令的內容,或至少是其中的一部分嗎?
例如:
<Include>
<?define Version="2.0"?>
</Include>
我需要得到 「版本」 的值。
該XPath表達式:
substring-before(
substring-after(
/Include/processing-instruction('define'),
'Version="'
),
'"'
)
評估到字符串:
我不認爲你可以得到'2.0'。您可以在一個值中獲得'Version ='2.0'',然後手動從中提取'2.0'。它是xml規範的一部分。如果您希望獲得2.0,請確保您使用<define Version='2.0/>
(使用元素而不是處理指令)。
從here報價,
的 「屬性」,在處理 指令實際上不是 屬性 - 它們只是看起來像 他們。無意義的人將這些 種「屬性」稱爲 「僞屬性」以強調 的事實。就XPath數據模型 而言, 關於處理指令 的唯一信息是它的目標,其值和節點樹中的 位置。
這樣你就可以得到該節點本身
/Include/processing-instruction('define')
但所有,讓你是的Version="2.0"
一個Value
一個節點(如字符串),您必須將自己的解析。