0
我想在XSLT文檔交給XML轉換之前做一些後處理。我認爲最好的選擇是將它加載爲XmlDocument,然後像我通常那樣通過SelectNodes遍歷待更新的節點,但是我似乎無法定位所需的節點。每個查詢都會返回0個找到的節點。使用C#和XmlDocument遍歷一個XSL DOM
我懷疑它與命名空間有關,但不知道如何。
樣品XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" omit-xml-declaration="yes" indent="yes"/>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<a href="/">
</body>
</html>
</xsl:template>
</xsl:stylesheet>
樣品C#:
XmlDocument style = new XmlDocument();
style.Load("sample.xslt");
foreach (XmlNode anchor in style.SelectNodes("//a"))
...
但它從來沒有發現<a>
標籤 - 或任何其他標記我試試。
我試過的代碼更改爲此:
XmlDocument style = new XmlDocument();
style.Load("sample.xslt");
XmlNamespaceManager nsmgr = new XmlNamespaceManager(style.NameTable);
nsmgr.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform");
foreach (XmlNode anchor in style.SelectNodes("//a", nsmgr))
...
這實際上讓我選擇與xsl:
前綴(如.SelectNodes("/xsl:stylesheet")
),但無內,HTML節點的節點。
任何建議將不勝感激!
完美的工作。非常感謝您的幫助! – smilingkevin