亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲得XElement的InnerXml的最佳方法是什么?

獲得XElement的InnerXml的最佳方法是什么?

滄海一幻覺 2019-09-20 16:47:40
body在下面的代碼中獲取混合元素內容的最佳方法是什么?該元素可能包含XHTML或文本,但我只想要其字符串形式的內容。該XmlElement類型具有InnerXml我正在追求的屬性。編寫的代碼幾乎可以實現我想要的功能,但包含了我不想要的周圍的<body>... </body>元素。XDocument doc = XDocument.Load(new StreamReader(s));var templates = from t in doc.Descendants("template")                where t.Attribute("name").Value == templateName                select new                {                   Subject = t.Element("subject").Value,                   Body = t.Element("body").ToString()                };
查看完整描述

3 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

我認為這是一個更好的方法(在VB中,不應該難以翻譯):


給定XElement x:


Dim xReader = x.CreateReader

xReader.MoveToContent

xReader.ReadInnerXml


查看完整回答
反對 回復 2019-09-20
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

如何在XElement上使用這個“擴展”方法?為我工作!


public static string InnerXml(this XElement element)

{

    StringBuilder innerXml = new StringBuilder();


    foreach (XNode node in element.Nodes())

    {

        // append node's xml string to innerXml

        innerXml.Append(node.ToString());

    }


    return innerXml.ToString();

}

或者使用一點Linq


public static string InnerXml(this XElement element)

{

    StringBuilder innerXml = new StringBuilder();

    doc.Nodes().ToList().ForEach( node => innerXml.Append(node.ToString()));


    return innerXml.ToString();

}

注意:上面的代碼必須使用element.Nodes()而不是element.Elements()。記住兩者之間的區別非常重要。element.Nodes()給你一些像XText,XAttribute等等,但XElement只有一個元素。


查看完整回答
反對 回復 2019-09-20
  • 3 回答
  • 0 關注
  • 549 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號