如何在.NET中更改xml中的样式表标记

如何在.NET中更改xml中的样式表标记,.net,xml,.net,Xml,我有没有办法更改xml中的样式表标记。有没有办法做到这一点。。。。 如果我收到 <?xml version="1.0" encoding="us-ascii"?> <?xml-stylesheet type="text/xsl" href="www.somecompany.com/stylesheet.xsl"?> <MedicalRecord> ...... ...... </MedicalRecord> ...... ...... 我想去

我有没有办法更改xml中的样式表标记。有没有办法做到这一点。。。。 如果我收到

<?xml version="1.0" encoding="us-ascii"?>
<?xml-stylesheet type="text/xsl" href="www.somecompany.com/stylesheet.xsl"?>
<MedicalRecord>
......
......
</MedicalRecord>

......
......
我想去

<?xml version="1.0" encoding="us-ascii"?>
<?xml-stylesheet type="text/xsl" href="mystylesheet.xsl"?>
<MedicalRecord>
......
......
</MedicalRecord>

......
......

注意href标记值已更改。

最简单的方法是直接替换:

XmlDocument doc = new XmlDocument();
doc.Load("XMLFile1.xml");
XmlProcessingInstruction pi = 
    (XmlProcessingInstruction)
         doc.SelectSingleNode("/processing-instruction('xml-stylesheet')");

// Replace href with the one we want
Regex r = new Regex("href=[\"']?((?:.(?![\"']?\\s+(?:\\S+)=|[>\"']))+.)[\"']?", 
                              RegexOptions.IgnoreCase | RegexOptions.Singleline);       
pi.Data = r.Replace(pi.Data, "href=\"mystyle.xsl\"", 1, 0);
看见