2

RunのTextプロパティをRunタグのコンテンツに移動するにはどうすればよいですか。例えば

string str = "<Run Text='hello world' />";

//into

string str2 = "<Run>hello world</Run>";

文字列には複数の段落と複数の実行が含まれる可能性があることに注意してください(すべての実行を変更する必要があります)。理想的には、XMLやXAMLに変換するのではなく、文字列として保持したいので、正規表現ステートメントでしょうか。そうでない場合、私はそれを変換することを受け入れます。

どんな助けでも大歓迎です。

4

3 に答える 3

2

@iondenからの借用:

string str = "<Para> <Run Text='hello world' /> <Run Text='goodbye world' /></Para>";
XElement elem = XElement.Parse(str);

var runs = elem.DescendantsAndSelf("Run");

foreach (var run in runs)
{
    // modify in-place to preserve the (unknown) structure. 
    run.Value = run.Attribute("Text").Value;
    run.Attribute("Text").Remove();
}

str = elem.ToString();
于 2012-04-18T13:59:14.883 に答える
1
 XElement elem = XElement.Parse(str);
 string str2 = new XElement(elem.Name, elem.Attribute("Text").Value).ToString();
于 2012-04-18T13:50:36.073 に答える
0
string str = "<Root><Run Text='hello world' /><Run Text='hello world2' /></Root>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(str);
XmlNodeList nodes = doc.SelectNodes("Root/Run");
foreach (XmlNode node in nodes)
{
    XmlAttribute attr = node.Attributes["Text"];
    node.InnerText = attr.Value.ToString();
    node.Attributes.Remove(attr);                
}
str = doc.InnerXml;
于 2012-04-18T13:56:40.490 に答える