2010-10-26 49 views
0

我有這個XML文檔,我想用REXML找到一個特定的GitHubCommiter。嗨,我該怎麼做?用REXML解析XML

<users> 
<GitHubCommiter id="Nerian"> 
    <username>name</username> 
    <password>12345</password> 
</GitHubCommiter> 

<GitHubCommiter id="xmawet"> 
    <username>name</username> 
    <password>12345</password> 
</GitHubCommiter> 

<GitHubCommiter id="JulienChristophe"> 
    <username>name</username> 
    <password>12345</password> 
    </GitHubCommiter> 
</users> 

我曾嘗試:

log = REXML::Document.new(file)              
root = log.root                   username = root.elements["GitHubCommiter['#{github_user_name}']"].elements['username'].text  
password =  root.elements["GitHubCommiter['#{github_user_name}']"].elements['password'].text 
root.elements["GitHubCommiter['id'=>'#{github_user_name}']"].text 

但我沒有找到一個方法來做到這一點。任何想法?

回答

1

docs say for elements(重點煤礦):

[](index, name=nil) 獲取一個子元素。無論XPath匹配如何,僅篩選元素子元素。

index:搜索參數。這是一個Integer,它將用於查找索引的子元素或XPath,該元素將用於搜索元素。

所以它需要的XPath:

root.elements["./GitHubCommiter[@id = '{github_user_name}']"] 

+0

這就是它!謝謝! – Nerian 2010-10-26 18:09:13

+0

@Nerian:不客氣。 ;-) – Tomalak 2010-10-26 18:20:24