LINQ to XML:元素存取與轉換

除了直接萃取其中的XML元素,你也可以針對其中的元素執行進一步的運算,例如合併元素內容,或是針對其中的特定元素進行判斷運算,甚至執行型別轉換操作-直接取出特定元素轉換成為新的XML文件。
現在,假設我們要萃取出程式開發類的書籍資料以進行特價促銷活動,以下為XML文件內容:

<?xml version="1.0" encoding="utf-8" ?>
<Books>
<Book>
    <ISBN>978-986-6761-23-2</ISBN>
    <Title language= "Chinese" >HTML5從零開始</Title>
    <Title language= "Chinese" >Beginning HTML5 </Title>
    <Author type="auth"> 呂高旭</Author>
    <Pages>500 </Pages>
    <Price>
      <OPrice>550</OPrice>
      <Sale>500</Sale>
    </Price>
    <Category>
       <Main>Web 開發</Main>
       <Sub>HTML5</Sub>
    </Category> 
</Book>
</Books>

現在要將其中的價格打5折,最後整理成為一份XML文件,以方便電腦管理記錄所需的LINQ運算式如下:

XElement rows = new XElement("Books",
from row in xEle.Elements()
     select new XElement(
        "康廷圖書",
new XElement("書名",row.Element("Title")),
        new XElement("作者",row.Element("Author")),
        new XElement("特價",(int)row.Element("Price").Element("OPrice") * .5),
        row.Elements("ISBN") )
    );

這段一段 LINQ 建立以下的結果:

<Books>
  <康廷圖書>
    <書名>
      <Title language="Chinese">HTML5從零開始</Title>
    </書名>
    <作者>
      <Author type="auth"> 呂高旭</Author>
    </作者>
    <特價>275</特價>
    <ISBN>978-986-6761-23-2</ISBN>
  </康廷圖書>
</Books>

LINQ to XML:XDocument & XElement 簡述 
LINQ to XML:關於 LINQ to XML 
LINQ to XML:XML命名空間與元素識別名稱 
LINQ to XML:XML內容元素 
LINQ to XML:XML文件載入與輸出 
LINQ to XML:載入 XML 內容 
LINQ to XML:輸出XML文件 
LINQ to XML:列舉XML元素 
LINQ to XML:存取特定XML元素 
LINQ to XML:新增XML元素 
LINQ to XML:元素屬性 
LINQ to XML:利用LIQN萃取XML文件內容元素 
LINQ to XML:元素存取與轉換 

沒有留言: