[英]Replace xml tags in a string with controls
我有一個字符串,看起來像這樣:
"Sandra <as type="1">walked</as> in the park, and met a <as type="3">random</a> stranger".
基於這些xml標記,我想將標記替換為其他內容(控件列表)。
例如,當我看到<as type="1">walked</as>
,我想返回一個文字和一個文本框,以替換該enseense。
我猜最簡單的方法是將整個內容添加到一個占位符中,但是我不知道如何進行替換。
您當前沒有有效的XML,因此第一步,我建議您使用一些基本的標簽將其包圍,例如:
var start = "Sandra <as type=\"1\">walked</as> in the park, and met a <as type=\"3\">random</as> stranger";
var startAsXml = "<root>" + start + "</root>";
現在我們可以解析它:
var doc = XElement.Parse(startAsXml);
現在,此XML中有兩種類型的節點-文本和元素。 您可以輕松地通過多種方式循環並提取它們,進行更改,執行自己喜歡的操作。 這是一個例子:
foreach (var node in doc.Nodes())
{
if (node.NodeType == XmlNodeType.Text) Console.WriteLine("Text: {0}", node.ToString().Trim());
else if (node.NodeType == XmlNodeType.Element)
{
var element = (XElement)node;
Console.WriteLine("Element: Name={0} Type={1} Value={2}",
element.Name, element.Attribute("type").Value, element.Value);
}
}
這將打印:
Text: Sandra
Element: Name=as Type=1 Value=walked
Text: in the park, and met a
Element: Name=as Type=3 Value=random
Text: stranger
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.