2

次のような文字列があります。

"Sandra <as type="1">walked</as> in the park, and met a <as type="3">random</a> stranger".

これらの xml タグに基づいて、タグを別のもの (コントロールのリスト) に置き換えたいと思います。

たとえば、 が表示された場合<as type="1">walked</as>、リテラルとテキストボックスを返し、そのセンテンスで置き換えたいとします。

最も簡単な方法は、すべてをプレースホルダーに追加することだと思いますが、交換部分を行う方法がわかりません。

4

1 に答える 1

1

現在、有効な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にはテキストと要素の2種類のノードがあります。さまざまな方法を簡単にループして抽出し、変更し、好きなことを行うことができます。次に例を示します。

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
于 2012-05-02T07:01:10.013 に答える