2011-01-14 109 views
2

有沒有辦法讓我在xml中更改樣式表標記。有沒有辦法做到這一點.... 前,如果我收到如何在.NET中更改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標記值發生了變化。

+0

見http://stackoverflow.com/questions/2424613/xml-changing-the-value-of-an-attribute – bluish 2011-01-14 17:02:45

回答

2

在它的最簡單的,基於直接替換:

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); 
+0

DUH!取代...爲什麼我沒有想到這一點! – superartsy 2011-01-21 21:54:23