簡體   English   中英

XmlElement將打開標記轉換為字符串C#

[英]XmlElement convert open tag to string c#

我需要將XmlElement的OuterXml內容的子集轉換為字符串,如以下示例所示。

想象一下,我有一個表示some-element標簽的XmlElement對象

<some-element attribute="value">
    <inner-element>
        text content
    </inner-element>
</some-element>

獲得只是<some-element attribute="value">的字符串的最佳方法是什么?

如果可能,我寧願不使用正則表達式但使用DOM類的解決方案

您可以通過淺層克隆節點然后獲取節點的外部XML來獲取元素的完整XML(包括close標簽):

var xml = @"<some-element attribute=""value"">
     <inner-element>
         text content
      </inner-element>
    </some-element>";

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

MessageBox.Show(doc.DocumentElement.CloneNode(false).OuterXml);

我認為在那之后,您將必須進行一些字符串操作才能准確獲得所需的內容,但這相對容易:

var outer = doc.DocumentElement.CloneNode(false).OuterXml;
var final = outer.Substring(0, outer.LastIndexOf(">", outer.Length - 2)+1);

MessageBox.Show(final);

我終於通過創建一個臨時 XElement而不是使用LINQ來解決了它

IEnumerable<XAttribute> attributes = (from XmlAttribute xmlAttribute in node.Attributes select new XAttribute(xmlAttribute.Name, xmlAttribute.Value));

var xElement = new XElement(node.Name, attributes);

return xElement.ToString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM