簡體   English   中英

用控件替換字符串中的xml標簽

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

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