2015-09-15 64 views
0

我想從下面的xml的xPath中獲取值{namevalue1}。找到xpath的值

<?xml version="1.0" encoding="UTF-8" ?> 
<properties> 
    <entry key="name1">namevalue1</entry> 
    <entry key="name2">namevalue2</entry> 
</properties> 

value1的xPath是什麼?

+1

'/屬性/進入[@ key ='name1']'... –

+0

@JeffMercado:我只想要值,即'namevalue1'。但是,上面的解決方案給了我整個條目' namevalue1' – nits

+0

你是用特定的編程語言來做這件事嗎?這會幫助我們給你更專注的答案。 –

回答

1

要展開什麼傑夫建議,你需要追加text()得到公正的文本節點:

% < in.xml 
<?xml version="1.0" encoding="UTF-8" ?> 
<properties> 
    <entry key="name1">namevalue1</entry> 
    <entry key="name2">namevalue2</entry> 
</properties> 
% xpquery '/properties/entry[@key="name1"]/text()' in.xml 
namevalue1 
% 
+0

我不應該使用任何功能,例如text() – nits

+0

'text()'不是一個函數,它是一個節點類型的測試。空對象的唯一目的是向XPath指出你不是在尋找一個名爲'', – bjimba

1

嘗試使用這樣的:

/properties/entry[@key='name1']/text() 
+0

的節點,我不應該使用任何像text()這樣的函數。有沒有辦法做到沒有功能? – nits

+1

不是我所知道的...爲什麼你不能使用函數?它們是Xpath規範的一部分。 – JeffFerguson

+0

text()函數在Xpath規範的2.5節中列出http://www.w3.org/TR/xpath/#path-abbrev ...爲什麼不能使用它? – JeffFerguson