[英]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.