将字符串中的 xml 标记替换为控件
本文关键字:替换 控件 xml 字符串 | 更新日期: 2023-09-27 18:32:56
我有一个字符串,可能看起来像这样:
"Sandra <as type="1">walked</as> in the park, and met a <as type="3">random</a> stranger".
基于这些 xml 标签,我想用其他东西(控件列表)替换标签。
例如,当我看到<as type="1">walked</as>
时,我想返回一个文字和一个文本框,以便在该句子中替换。
我想最简单的方法是将整个东西添加到占位符中,但我不知道如何进行替换部分。
您目前没有有效的 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