替换XML字符串中的字符串

sup*_*ted 0 c# regex replace

我有一个看起来像这样的字符串:

newNodeXML = "<item id="qDf73w8emTg" parent_id="weLPzE243de" type="suite">
                 <content>
                    <name>Three</name>
                 </content>
              </item>"
Run Code Online (Sandbox Code Playgroud)

在我的[WebMethod]中,我试图替换parent_ID(在运行时随机生成),如下所示:

Regex myRegex = new Regex(@""" parent_id=""(.*?)"" type=""");
newNodeXML = myRegex.Replace(newNodeXML, "d43df2qT45");
Run Code Online (Sandbox Code Playgroud)

请注意,例如/ demo,我在上面的第二行使用了'd43df2qT45'.我实际上也会随机生成它.

我的问题在于,结果就是这样.我不想要这个:

<item id="qDf73w8emTgd43df2qT45suite">
   <content>
      <name>Three</name>
   </content>
</item>
Run Code Online (Sandbox Code Playgroud)

相反,这就是我想要的:

<item id="qDf73w8emTg" parent_ID="d43df2qT45" type="suite">
   <content>
      <name>Three</name>
   </content>
</item>
Run Code Online (Sandbox Code Playgroud)

PS我已经尝试了一些示例/谷歌搜索,我所能找到的只是让我这么远的例子.

Ond*_*cek 6

如果你有一个已知的XML结构,使用XML工具可能比使用refex更好,也更快.例如:

var doc = XDocument.Parse(newNodeXML);
doc.Root.Attribute("parent_id").Value = "xyz";
Run Code Online (Sandbox Code Playgroud)

此代码依赖于您提供的确切结构.所以只有一个item,它是XML文件的根,它有一个名为的属性parent_id.

有关MSDNXDocument上的类型的更多信息.