2013-05-02 63 views
1

我是XML處理和Scala的新手。我有幾個問題/事情,實現基於以下Scala - XML檢查/修改

val xml = <begin> 
    <definition> 
     <var>x</var> 
     <install>new version</install> 
    </definition> 
</begin> 

示例XML類型的xml是ELEM。現在,如果我想搜索給定的標籤/子標籤,假設我說

xml \\ "definition" 

我得到Seq [Node]。 Elem和這種類型有什麼區別?作爲查詢特定標籤的結果,我可以得到Elem,即從該標籤開始取回elem?

我的第二個問題是關於修改XML。有沒有一種簡單的方法來實現表格:「安裝」標籤之間的每個值 - >用XXXX替代,其餘的應該保持不變。有沒有一種方法可以實現這個目標?由於

回答

1

要了解ELEM(一個DOM元素)和節點之間的區別,看看這個鏈接第一:

What's the difference between an element and a node in XML?

在高層次節點是XML表示位置一個抽象的概念文檔(屬性,文本節點,元素)和一個元素是由類似這樣的東西表示的具體類型的節點;

<install>foo</install> 

現在,對你的問題的第二部分,我將更多的精力放在把動態內容爲一組固定的XML,而不是試圖突變現有的XML。你可以這樣做:

def buildXml(version:String) = { 
    <begin> 
    <definition> 
     <var>x</var> 
     <install>{version}</install> 
    </definition> 
    </begin> 
}