XslTransform.Load Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ładuje arkusz stylów XSLT, w tym arkusze stylów, do których odwołuje się element xsl:include
i xsl:import
.
Przeciążenia
Load(XPathNavigator, XmlResolver, Evidence) |
Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów. |
Load(IXPathNavigable, XmlResolver, Evidence) |
Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów. |
Load(XPathNavigator, XmlResolver) |
Nieaktualne.
Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator. |
Load(IXPathNavigable, XmlResolver) |
Nieaktualne.
Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable. |
Load(XmlReader, XmlResolver) |
Nieaktualne.
Ładuje arkusz stylów XSLT zawarty w pliku XmlReader. |
Load(XmlReader, XmlResolver, Evidence) |
Ładuje arkusz stylów XSLT zawarty w pliku XmlReader. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów. |
Load(XPathNavigator) |
Nieaktualne.
Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator. |
Load(IXPathNavigable) |
Nieaktualne.
Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable. |
Load(XmlReader) |
Nieaktualne.
Ładuje arkusz stylów XSLT zawarty w pliku XmlReader. |
Load(String) |
Ładuje arkusz stylów XSLT określony przez adres URL. |
Load(String, XmlResolver) |
Ładuje arkusz stylów XSLT określony przez adres URL. |
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class and Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform ) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
Load(XPathNavigator, XmlResolver, Evidence)
Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów.
public:
void Load(System::Xml::XPath::XPathNavigator ^ stylesheet, System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public void Load (System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
member this.Load : System.Xml.XPath.XPathNavigator * System.Xml.XmlResolver * System.Security.Policy.Evidence -> unit
Public Sub Load (stylesheet As XPathNavigator, resolver As XmlResolver, evidence As Evidence)
Parametry
- stylesheet
- XPathNavigator
Obiekt XPathNavigator zawierający arkusz stylów do załadowania.
- resolver
- XmlResolver
Służy XmlResolver do ładowania dowolnych arkuszy stylów, do których odwołuje się element xsl:import
i xsl:include
. Jeśli jest null
to wartość , zasoby zewnętrzne nie zostaną rozwiązane.
Wartość XmlResolver nie jest buforowana po zakończeniu Load metody.
- evidence
- Evidence
Zestaw Evidence w zestawie wygenerowany dla bloku skryptu w arkuszu stylów XSLT.
Jeśli jest null
to element , bloki skryptów nie są przetwarzane, funkcja document()
XSLT nie jest obsługiwana, a obiekty uprzywilejowanego rozszerzenia są niedozwolone.
Obiekt wywołujący musi mieć ControlEvidence
uprawnienia, aby dostarczyć dowody dla zestawu skryptów. Częściowo zaufane wywołujące mogą ustawić ten parametr na null
wartość .
Wyjątki
Bieżący węzeł nie jest zgodny z prawidłowym arkuszem stylów.
Arkusz stylów, do którego odwołuje się odwołanie, wymaga funkcji, które nie są dozwolone przez dostarczone dowody.
Wywołujący próbuje dostarczyć dowody i nie ma ControlEvidence
pozwolenia.
Przykłady
Poniższy przykład wykonuje przekształcenie XSLT przy użyciu arkusza stylów ze źródła zewnętrznego. Ponieważ arkusz stylów pochodzi z niezaufanego źródła, resolver
parametry i evidence
są ustawione na null
wartość .
public static void TransformFile (XPathNavigator xsltNav) {
// Load the stylesheet.
XslTransform xslt = new XslTransform();
xslt.Load(xsltNav, null, null);
// Transform the file.
xslt.Transform("books.xml", "books.html", null);
}
public shared sub TransformFile (xsltNav as XPathNavigator)
' Load the stylesheet.
Dim xslt as XslTransform = new XslTransform()
xslt.Load(xsltNav, nothing, nothing)
' Transform the file.
xslt.Transform("books.xml", "books.html", nothing)
end sub
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Arkusz stylów jest ładowany z bieżącej pozycji obiektu XPathNavigator. Aby użyć części załadowanego dokumentu jako arkusza stylów, przejdź do węzła odpowiadającego początku arkusza stylów. Po powrocie Load XPathNavigator metody obiekt jest umieszczony na początku arkusza stylów (w węźle xsl:style sheet
).
Istnieją różne sposoby przedstawienia dowodów. W poniższej tabeli opisano typ dowodów, które należy przedstawić dla typowych scenariuszy użytkownika.
Scenariusz | Rodzaj dowodu do dostarczenia |
---|---|
Arkusz stylów XSLT jest samodzielny lub pochodzi z zaufanej bazy kodu. | Użyj dowodów z zestawu.
|
Arkusz stylów XSLT pochodzi ze źródła zewnętrznego. Źródło źródła jest znane i istnieje weryfikowalny adres URL. | Tworzenie dowodów przy użyciu adresu URL.
|
Arkusz stylów XSLT pochodzi ze źródła zewnętrznego. Pochodzenie źródła nie jest znane. | Ustaw dowody na null wartość . Bloki skryptów nie są przetwarzane, funkcja XSLT document() nie jest obsługiwana, a obiekty uprzywilejowanego rozszerzenia są niedozwolone.Ponadto można również ustawić resolver parametr na null wartość . Gwarantuje to, że xsl:import elementy i xsl:include nie są przetwarzane. |
Arkusz stylów XSLT pochodzi ze źródła zewnętrznego. Pochodzenie źródła nie jest znane, ale wymagasz obsługi skryptów. | Zażądaj dowodów od rozmówcy. Interfejs API obiektu wywołującego musi zapewnić sposób dostarczenia dowodów, zazwyczaj Evidence klasy. |
Zobacz też
- Credentials
- NetworkCredential
- CredentialCache
- SecurityZone
- XmlSecureResolver
- CreateEvidenceForUrl(String)
Dotyczy
Load(IXPathNavigable, XmlResolver, Evidence)
Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów.
public:
void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet, System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
member this.Load : System.Xml.XPath.IXPathNavigable * System.Xml.XmlResolver * System.Security.Policy.Evidence -> unit
Public Sub Load (stylesheet As IXPathNavigable, resolver As XmlResolver, evidence As Evidence)
Parametry
- stylesheet
- IXPathNavigable
Obiekt implementowania interfejsu IXPathNavigable . W .NET Framework może to być element XmlNode (zazwyczaj XmlDocument) lub XPathDocument zawierający arkusz stylów XSLT.
- resolver
- XmlResolver
Służy XmlResolver do ładowania dowolnych arkuszy stylów, do których odwołuje się element xsl:import
i xsl:include
. Jeśli jest null
to wartość , zasoby zewnętrzne nie zostaną rozwiązane.
Wartość XmlResolver nie jest buforowana po zakończeniu Load metody.
- evidence
- Evidence
Zestaw Evidence w zestawie wygenerowany dla bloku skryptu w arkuszu stylów XSLT.
Jeśli jest null
to element , bloki skryptów nie są przetwarzane, funkcja document()
XSLT nie jest obsługiwana, a obiekty uprzywilejowanego rozszerzenia są niedozwolone.
Obiekt wywołujący musi mieć ControlEvidence
uprawnienia, aby dostarczyć dowody dla zestawu skryptów. Częściowo zaufane wywołujące mogą ustawić ten parametr na null
wartość .
Wyjątki
Załadowany zasób nie jest prawidłowym arkuszem stylów.
Arkusz stylów, do którego odwołuje się odwołanie, wymaga funkcji, które nie są dozwolone przez dostarczone dowody.
Wywołujący próbuje dostarczyć dowody i nie ma ControlEvidence
pozwolenia.
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w wersji .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Istnieją różne sposoby przedstawienia dowodów. W poniższej tabeli opisano typ dowodów, które należy przedstawić dla typowych scenariuszy użytkownika.
Scenariusz | Rodzaj dowodu do dostarczenia |
---|---|
Arkusz stylów XSLT jest samodzielny lub pochodzi z zaufanej bazy kodu. | Użyj dowodów z zestawu.
|
Arkusz stylów XSLT pochodzi ze źródła zewnętrznego. Źródło źródła jest znane i istnieje weryfikowalny adres URL. | Tworzenie dowodów przy użyciu adresu URL.
|
Arkusz stylów XSLT pochodzi ze źródła zewnętrznego. Pochodzenie źródła nie jest znane. | Ustaw dowody na null wartość . Bloki skryptów nie są przetwarzane, funkcja XSLT document() nie jest obsługiwana, a obiekty uprzywilejowanego rozszerzenia są niedozwolone.Ponadto można również ustawić resolver parametr na null wartość . Gwarantuje to, że xsl:import elementy i xsl:include nie są przetwarzane. |
Arkusz stylów XSLT pochodzi ze źródła zewnętrznego. Pochodzenie źródła nie jest znane, ale wymagasz obsługi skryptów. | Zażądaj dowodów od rozmówcy. Interfejs API obiektu wywołującego musi zapewnić sposób dostarczenia dowodów, zazwyczaj Evidence klasy. |
Zobacz też
- Credentials
- NetworkCredential
- CredentialCache
- SecurityZone
- XmlSecureResolver
- CreateEvidenceForUrl(String)
Dotyczy
Load(XPathNavigator, XmlResolver)
Przestroga
You should pass evidence to Load() method
Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator.
public:
void Load(System::Xml::XPath::XPathNavigator ^ stylesheet, System::Xml::XmlResolver ^ resolver);
public void Load (System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver? resolver);
public void Load (System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver resolver);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver resolver);
member this.Load : System.Xml.XPath.XPathNavigator * System.Xml.XmlResolver -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XPath.XPathNavigator * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As XPathNavigator, resolver As XmlResolver)
Parametry
- stylesheet
- XPathNavigator
XPathNavigator Obiekt zawierający arkusz stylów XSLT.
- resolver
- XmlResolver
Służy XmlResolver do ładowania wszystkich arkuszy stylów, do których odwołuje się plik xsl:import
i xsl:include
. Jeśli jest null
to , zasoby zewnętrzne nie są rozwiązywane.
Element XmlResolver nie jest buforowany po zakończeniu Load metody.
- Atrybuty
Wyjątki
Bieżący węzeł nie jest zgodny z prawidłowym arkuszem stylów.
Arkusz stylów zawiera osadzone skrypty, a obiekt wywołujący nie ma UnmanagedCode
uprawnień.
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class and Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform ) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Arkusz stylów jest ładowany z bieżącej pozycji elementu XPathNavigator. Aby użyć części załadowanego dokumentu jako arkusza stylów, przejdź do węzła odpowiadającego początku arkusza stylów. Po powrocie Load XPathNavigator metody element jest umieszczony na początku arkusza stylów (w węźle xsl:style sheet
).
Jeśli arkusz stylów zawiera osadzone skrypty, skrypt jest kompilowany do zestawu. Zestaw ma pełne zaufanie. Zalecaną praktyką jest przedstawienie dowodów przy użyciu elementu Load(XPathNavigator, XmlResolver, Evidence).
Uwaga
Jeśli obiekt wywołujący nie ma UnmanagedCode
uprawnień, osadzony skrypt nie jest skompilowany i SecurityException jest zgłaszany. Zobacz SecurityPermission i SecurityPermissionFlag.UnmanagedCode , aby uzyskać więcej informacji.
Zobacz też
Dotyczy
Load(IXPathNavigable, XmlResolver)
Przestroga
You should pass evidence to Load() method
Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable.
public:
void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet, System::Xml::XmlResolver ^ resolver);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver? resolver);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver resolver);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver resolver);
member this.Load : System.Xml.XPath.IXPathNavigable * System.Xml.XmlResolver -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XPath.IXPathNavigable * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As IXPathNavigable, resolver As XmlResolver)
Parametry
- stylesheet
- IXPathNavigable
Obiekt implementowania interfejsu IXPathNavigable . W .NET Framework może to być element XmlNode (zazwyczaj XmlDocument) lub XPathDocument zawierający arkusz stylów XSLT.
- resolver
- XmlResolver
Służy XmlResolver do ładowania wszystkich arkuszy stylów, do których odwołuje się plik xsl:import
i xsl:include
. Jeśli jest null
to , zasoby zewnętrzne nie są rozwiązywane.
Element XmlResolver nie jest buforowany po zakończeniu Load metody.
- Atrybuty
Wyjątki
Załadowany zasób nie jest prawidłowym arkuszem stylów.
Arkusz stylów zawiera osadzone skrypty, a obiekt wywołujący nie ma UnmanagedCode
uprawnień.
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class and Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform ) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Jeśli arkusz stylów zawiera osadzone skrypty, skrypt jest kompilowany do zestawu. Zestaw ma pełne zaufanie. Zalecaną praktyką jest dostarczenie dowodów przy użyciu Load(IXPathNavigable, XmlResolver, Evidence) metody .
Uwaga
Jeśli obiekt wywołujący nie ma UnmanagedCode
uprawnień, osadzony skrypt nie jest skompilowany i SecurityException jest zgłaszany. Zobacz SecurityPermission i SecurityPermissionFlag.UnmanagedCode , aby uzyskać więcej informacji.
Zobacz też
Dotyczy
Load(XmlReader, XmlResolver)
Przestroga
You should pass evidence to Load() method
Ładuje arkusz stylów XSLT zawarty w pliku XmlReader.
public:
void Load(System::Xml::XmlReader ^ stylesheet, System::Xml::XmlResolver ^ resolver);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.XmlResolver? resolver);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.XmlResolver resolver);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XmlReader stylesheet, System.Xml.XmlResolver resolver);
member this.Load : System.Xml.XmlReader * System.Xml.XmlResolver -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XmlReader * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As XmlReader, resolver As XmlResolver)
Parametry
- resolver
- XmlResolver
Służy XmlResolver do ładowania dowolnych arkuszy stylów, do których odwołuje się element xsl:import
i xsl:include
. Jeśli jest null
to wartość , zasoby zewnętrzne nie zostaną rozwiązane.
Wartość XmlResolver nie jest buforowana po zakończeniu Load(XmlReader, XmlResolver) metody.
- Atrybuty
Wyjątki
Bieżący węzeł nie jest zgodny z prawidłowym arkuszem stylów.
Arkusz stylów zawiera osadzone skrypty, a obiekt wywołujący nie ma UnmanagedCode
uprawnień.
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Ta metoda ładuje arkusz stylów XSLT, w tym wszystkie arkusze stylów, do których odwołuje się element xsl:include
i xsl:import
. Arkusz stylów ładuje się z bieżącego węzła XmlReader przez wszystkie jego elementy podrzędne. Dzięki temu można użyć części dokumentu jako arkusza stylów.
Po powrocie Load XmlReader metody element jest umieszczony w następnym węźle po zakończeniu arkusza stylów. Jeśli osiągnięto koniec dokumentu, pozycja XmlReader jest umieszczona na końcu pliku (EOF).
Jeśli arkusz stylów zawiera jednostki, należy określić XmlReader , który może rozpoznawać jednostki (XmlReader.CanResolveEntity zwraca true
wartość ). W takim przypadku można użyć elementu XmlValidatingReader .
Jeśli arkusz stylów zawiera osadzone skrypty, skrypt jest kompilowany do zestawu. Zestaw ma pełne zaufanie. Zalecaną praktyką jest dostarczenie dowodów przy użyciu Load(XmlReader, XmlResolver, Evidence) metody .
Uwaga
Jeśli obiekt wywołujący nie ma UnmanagedCode
uprawnień, osadzony skrypt nie jest skompilowany i SecurityException jest zgłaszany. Zobacz SecurityPermission i SecurityPermissionFlag.UnmanagedCode , aby uzyskać więcej informacji.
Zobacz też
Dotyczy
Load(XmlReader, XmlResolver, Evidence)
Ładuje arkusz stylów XSLT zawarty w pliku XmlReader. Ta metoda umożliwia ograniczenie uprawnień arkusza stylów przez określenie dowodów.
public:
void Load(System::Xml::XmlReader ^ stylesheet, System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
member this.Load : System.Xml.XmlReader * System.Xml.XmlResolver * System.Security.Policy.Evidence -> unit
Public Sub Load (stylesheet As XmlReader, resolver As XmlResolver, evidence As Evidence)
Parametry
- resolver
- XmlResolver
Służy XmlResolver do ładowania wszystkich arkuszy stylów, do których odwołuje się plik xsl:import
i xsl:include
. Jeśli jest null
to , zasoby zewnętrzne nie są rozwiązywane.
Element XmlResolver nie jest buforowany po zakończeniu Load metody.
- evidence
- Evidence
Zestaw Evidence wygenerowany dla bloku skryptów w arkuszu stylów XSLT.
Jeśli tak jest null
, bloki skryptów nie są przetwarzane, funkcja document()
XSLT nie jest obsługiwana, a uprzywilejowane obiekty rozszerzeń są niedozwolone.
Obiekt wywołujący musi mieć ControlEvidence
uprawnienia, aby dostarczyć dowody dla zestawu skryptu. Osoby wywołujące częściowo zaufane mogą ustawić ten parametr na null
.
Wyjątki
Bieżący węzeł nie jest zgodny z prawidłowym arkuszem stylów.
Przywołyny arkusz stylów wymaga funkcjonalności, która nie jest dozwolona przez podane dowody.
Wywołujący próbuje dostarczyć dowody i nie ma ControlEvidence
uprawnień.
Przykłady
Poniższy przykład wykonuje przekształcenie XSLT, w którym xsltReader
znajduje się XmlReader arkusz stylów i secureURL
jest zaufanym adresem URL, którego można użyć do utworzenia Evidenceelementu . Metoda XmlSecureResolver.CreateEvidenceForUrl służy do tworzenia Evidence , która jest stosowana do arkusza stylów.
void TransformFile( XmlReader^ xsltReader, String^ secureURL )
{
// Load the stylesheet using a default XmlUrlResolver and Evidence
// created using the trusted URL.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( xsltReader, gcnew XmlUrlResolver, XmlSecureResolver::CreateEvidenceForUrl( secureURL ) );
// Transform the file.
xslt->Transform("books.xml","books.html",gcnew XmlUrlResolver);
}
public static void TransformFile (XmlReader xsltReader, String secureURL) {
// Load the stylesheet using a default XmlUrlResolver and Evidence
// created using the trusted URL.
XslTransform xslt = new XslTransform();
xslt.Load(xsltReader, new XmlUrlResolver(), XmlSecureResolver.CreateEvidenceForUrl(secureURL));
// Transform the file.
xslt.Transform("books.xml", "books.html", new XmlUrlResolver());
}
public shared sub TransformFile (xsltReader as XmlReader, secureURL as String)
' Load the stylesheet using a default XmlUrlResolver and Evidence
' created using the trusted URL.
Dim xslt as XslTransform = new XslTransform()
xslt.Load(xsltReader, new XmlUrlResolver(), XmlSecureResolver.CreateEvidenceForUrl(secureURL))
' Transform the file.
xslt.Transform("books.xml", "books.html", new XmlUrlResolver())
end sub
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class and Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform ) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Ta metoda ładuje arkusz stylów XSLT, w tym wszystkie arkusze stylów, do których odwołuje się element xsl:include
i xsl:import
. Arkusz stylów ładuje się z bieżącego węzła XmlReader przez wszystkie jego elementy podrzędne. Dzięki temu można użyć części dokumentu jako arkusza stylów.
Po powrocie Load XmlReader metody element jest umieszczony w następnym węźle po zakończeniu arkusza stylów. Jeśli osiągnięto koniec dokumentu, pozycja XmlReader jest umieszczona na końcu pliku (EOF).
Jeśli arkusz stylów zawiera jednostki, należy określić XmlReader , który może rozpoznawać jednostki (XmlReader.CanResolveEntity zwraca true
wartość ). W takim przypadku można użyć elementu XmlValidatingReader .
Istnieją różne sposoby przedstawienia dowodów. W poniższej tabeli opisano typ dowodów, które należy dostarczyć dla typowych scenariuszy użytkownika.
Scenariusz | Rodzaj dowodu, który należy dostarczyć |
---|---|
Arkusz stylów XSLT jest samodzielny lub pochodzi z bazy kodu, której ufasz. | Użyj dowodów z zestawu.
|
Arkusz stylów XSLT pochodzi z zewnętrznego źródła. Źródło jest znane i istnieje weryfikowalny adres URL. | Utwórz dowody przy użyciu adresu URL.
|
Arkusz stylów XSLT pochodzi z zewnętrznego źródła. Pochodzenie źródła nie jest znane. | Ustaw dowody na null wartość . Bloki skryptów nie są przetwarzane, funkcja XSLT document() nie jest obsługiwana, a obiekty rozszerzenia uprzywilejowanego są niedozwolone.Ponadto można również ustawić resolver parametr na null . Gwarantuje to, że xsl:import elementy i xsl:include nie są przetwarzane. |
Arkusz stylów XSLT pochodzi z zewnętrznego źródła. Źródło źródła nie jest znane, ale wymagana jest obsługa skryptów. | Zażądaj dowodów od obiektu wywołującego. Interfejs API obiektu wywołującego musi zapewnić sposób dostarczenia dowodów, zazwyczaj Evidence klasy. |
Zobacz też
- Credentials
- NetworkCredential
- CredentialCache
- SecurityZone
- XmlSecureResolver
- CreateEvidenceForUrl(String)
Dotyczy
Load(XPathNavigator)
Przestroga
You should pass evidence to Load() method
Ładuje arkusz stylów XSLT zawarty w pliku XPathNavigator.
public:
void Load(System::Xml::XPath::XPathNavigator ^ stylesheet);
public void Load (System.Xml.XPath.XPathNavigator stylesheet);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XPath.XPathNavigator stylesheet);
member this.Load : System.Xml.XPath.XPathNavigator -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XPath.XPathNavigator -> unit
Public Sub Load (stylesheet As XPathNavigator)
Parametry
- stylesheet
- XPathNavigator
XPathNavigator Obiekt zawierający arkusz stylów XSLT.
- Atrybuty
Wyjątki
Bieżący węzeł nie jest zgodny z prawidłowym arkuszem stylów.
Arkusz stylów zawiera skrypty osadzone, a obiekt wywołujący nie ma UnmanagedCode
uprawnień.
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Ta metoda ładuje arkusz stylów XSLT, w tym wszystkie arkusze stylów, do których odwołuje się element xsl:include
i xsl:import
. Zasoby zewnętrzne są rozwiązywane przy użyciu elementu XmlUrlResolver bez poświadczeń użytkownika. Jeśli arkusze stylów znajdują się w zasobie sieciowym, który wymaga uwierzytelniania, użyj przeciążenia, które przyjmuje XmlResolver jako jeden z argumentów i określ element XmlResolver z wymaganymi poświadczeniami.
Arkusz stylów jest ładowany z bieżącej pozycji obiektu XPathNavigator. Aby użyć tylko części załadowanego dokumentu jako arkusza stylów, przejdź do węzła odpowiadającego początku arkusza stylów. Po powrocie Load XPathNavigator metody obiekt jest umieszczony na początku arkusza stylów (w węźle xsl:style sheet
).
Jeśli arkusz stylów zawiera osadzone skrypty, skrypt jest kompilowany do zestawu. Zestaw ma pełne zaufanie. Zalecaną praktyką jest przedstawienie dowodów przy użyciu Load(XPathNavigator, XmlResolver, Evidence) metody .
Uwaga
Jeśli obiekt wywołujący nie ma UnmanagedCode
uprawnień, osadzony skrypt nie jest kompilowany i SecurityException jest zgłaszany. Zobacz SecurityPermission i SecurityPermissionFlag.UnmanagedCode , aby uzyskać więcej informacji.
Dotyczy
Load(IXPathNavigable)
Przestroga
You should pass evidence to Load() method
Ładuje arkusz stylów XSLT zawarty w pliku IXPathNavigable.
public:
void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XPath.IXPathNavigable stylesheet);
member this.Load : System.Xml.XPath.IXPathNavigable -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XPath.IXPathNavigable -> unit
Public Sub Load (stylesheet As IXPathNavigable)
Parametry
- stylesheet
- IXPathNavigable
Obiekt implementuje IXPathNavigable interfejs. W .NET Framework może to być obiekt XmlNode (zazwyczaj XmlDocument) lub XPathDocument zawierający arkusz stylów XSLT.
- Atrybuty
Wyjątki
Załadowany zasób nie jest prawidłowym arkuszem stylów.
Arkusz stylów zawiera skrypty osadzone, a obiekt wywołujący nie ma UnmanagedCode
uprawnień.
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Ta metoda ładuje arkusz stylów XSLT, w tym wszystkie arkusze stylów, do których odwołuje się element xsl:include
i xsl:import
. Zasoby zewnętrzne są rozwiązywane przy użyciu elementu XmlUrlResolver bez poświadczeń użytkownika. Jeśli arkusze stylów znajdują się w zasobie sieciowym, który wymaga uwierzytelniania, użyj przeciążenia, które przyjmuje XmlResolver jako jeden z argumentów i określ element XmlResolver z wymaganymi poświadczeniami.
Jeśli arkusz stylów zawiera osadzone skrypty, skrypt jest kompilowany do zestawu. Zestaw ma pełne zaufanie. Zalecaną praktyką jest przedstawienie dowodów przy użyciu Load(IXPathNavigable, XmlResolver, Evidence) metody .
Uwaga
Jeśli obiekt wywołujący nie ma UnmanagedCode
uprawnień, osadzony skrypt nie jest kompilowany i SecurityException jest zgłaszany. Zobacz SecurityPermission i SecurityPermissionFlag.UnmanagedCode , aby uzyskać więcej informacji.
Dotyczy
Load(XmlReader)
Przestroga
You should pass evidence to Load() method
Ładuje arkusz stylów XSLT zawarty w pliku XmlReader.
public:
void Load(System::Xml::XmlReader ^ stylesheet);
public void Load (System.Xml.XmlReader stylesheet);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XmlReader stylesheet);
member this.Load : System.Xml.XmlReader -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XmlReader -> unit
Public Sub Load (stylesheet As XmlReader)
Parametry
- Atrybuty
Wyjątki
Bieżący węzeł nie jest zgodny z prawidłowym arkuszem stylów.
Arkusz stylów zawiera skrypty osadzone, a obiekt wywołujący nie ma UnmanagedCode
uprawnień.
Przykłady
Poniższy przykład przekształca plik XML posortując wszystkie książki według tytułu.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Xsl;
using namespace System::Xml::XPath;
int main()
{
String^ filename = "books.xml";
String^ stylesheet = "titles.xsl";
// Create the reader to load the stylesheet.
// Move the reader to the xsl:stylesheet node.
XmlTextReader^ reader = gcnew XmlTextReader( stylesheet );
reader->Read();
reader->Read();
// Create the XslTransform object and load the stylesheet.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( reader );
// Load the file to transform.
XPathDocument^ doc = gcnew XPathDocument( filename );
// Create an XmlTextWriter which outputs to the console.
XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );
// Transform the file and send the output to the console.
xslt->Transform(doc,nullptr,writer);
writer->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample
{
private const String filename = "books.xml";
private const String stylesheet = "titles.xsl";
public static void Main()
{
//Create the reader to load the stylesheet.
//Move the reader to the xsl:stylesheet node.
XmlTextReader reader = new XmlTextReader(stylesheet);
reader.Read();
reader.Read();
//Create the XslTransform object and load the stylesheet.
XslTransform xslt = new XslTransform();
xslt.Load(reader);
//Load the file to transform.
XPathDocument doc = new XPathDocument(filename);
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter writer = new XmlTextWriter(Console.Out);
//Transform the file and send the output to the console.
xslt.Transform(doc, null, writer);
writer.Close();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
public class Sample
private const filename as String = "books.xml"
private const stylesheet as String = "titles.xsl"
public shared sub Main()
'Create the reader to load the stylesheet.
'Move the reader to the xsl:stylesheet node.
Dim reader as XmlTextReader = new XmlTextReader(stylesheet)
reader.Read()
reader.Read()
'Create the XslTransform object and load the stylesheet.
Dim xslt as XslTransform = new XslTransform()
xslt.Load(reader)
'Load the file to transform.
Dim doc as XPathDocument = new XPathDocument(filename)
'Create an XmlTextWriter which outputs to the console.
Dim writer as XmlTextWriter = new XmlTextWriter(Console.Out)
'Transform the file and send the output to the console.
xslt.Transform(doc, nothing, writer)
writer.Close()
end sub
end class
W przykładzie użyto następujących plików danych jako danych wejściowych.
books.xml
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
titles.xsl
<!--Stylesheet to sort all books by title-->
<!--Created 2/13/2001-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<books>
<xsl:apply-templates select="book">
<xsl:sort select="title"/>
</xsl:apply-templates>
</books>
</xsl:template>
<xsl:template match="book">
<book><xsl:copy-of select="node()"/></book>
</xsl:template>
</xsl:stylesheet>
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Ta metoda ładuje arkusz stylów XSLT, w tym wszystkie arkusze stylów, do których odwołuje się element xsl:include
i xsl:import
. Zasoby zewnętrzne są rozwiązywane przy użyciu elementu XmlUrlResolver bez poświadczeń użytkownika. Jeśli arkusze stylów znajdują się w zasobie sieciowym, który wymaga uwierzytelniania, użyj przeciążenia, które przyjmuje XmlResolver jako jeden z argumentów i określ element XmlResolver z wymaganymi poświadczeniami.
Arkusz stylów jest ładowany z bieżącego węzła obiektu za pośrednictwem wszystkich jego elementów podrzędnych XmlReader . Dzięki temu można użyć części dokumentu jako arkusza stylów. Po powrocie Load XmlReader metody element jest umieszczony w następnym węźle po zakończeniu arkusza stylów. Jeśli koniec dokumentu zostanie osiągnięty, XmlReader element zostanie umieszczony na końcu pliku (EOF).
Jeśli arkusz stylów zawiera jednostki, należy określić jednostkę XmlReader , która może rozpoznawać jednostki (XmlReader.CanResolveEntity zwraca wartość true
). W tym przypadku można użyć elementu XmlValidatingReader .
Jeśli arkusz stylów zawiera osadzone skrypty, skrypt jest kompilowany do zestawu. Zestaw ma pełne zaufanie. Zalecaną praktyką jest przedstawienie dowodów przy użyciu Load(XmlReader, XmlResolver, Evidence) metody .
Uwaga
Jeśli obiekt wywołujący nie ma UnmanagedCode
uprawnień, osadzony skrypt nie jest kompilowany i SecurityException jest zgłaszany. Zobacz SecurityPermission i SecurityPermissionFlag.UnmanagedCode , aby uzyskać więcej informacji.
Dotyczy
Load(String)
Ładuje arkusz stylów XSLT określony przez adres URL.
public:
void Load(System::String ^ url);
public void Load (string url);
member this.Load : string -> unit
Public Sub Load (url As String)
Parametry
- url
- String
Adres URL określający arkusz stylów XSLT do załadowania.
Wyjątki
Załadowany zasób nie jest prawidłowym arkuszem stylów.
Arkusz stylów zawiera osadzony skrypt, a obiekt wywołujący nie ma UnmanagedCode
uprawnień.
Przykłady
Poniższy przykład przekształca dokument XML w dokument HTML. Wyświetla on wartość ISBN, tytuł i cenę każdej książki w tabeli.
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Xsl;
using namespace System::Xml::XPath;
int main()
{
String^ filename = "books.xml";
String^ stylesheet = "output.xsl";
//Load the stylesheet.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( stylesheet );
//Load the file to transform.
XPathDocument^ doc = gcnew XPathDocument( filename );
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );
//Transform the file and send the output to the console.
xslt->Transform(doc,nullptr,writer,nullptr);
writer->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample
{
private const String filename = "books.xml";
private const String stylesheet = "output.xsl";
public static void Main()
{
//Load the stylesheet.
XslTransform xslt = new XslTransform();
xslt.Load(stylesheet);
//Load the file to transform.
XPathDocument doc = new XPathDocument(filename);
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter writer = new XmlTextWriter(Console.Out);
//Transform the file and send the output to the console.
xslt.Transform(doc, null, writer, null);
writer.Close();
}
}
Option Strict
Option Explicit
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
Public Class Sample
Private Shared filename1 As String = "books.xml"
Private Shared stylesheet1 As String = "output.xsl"
Public Shared Sub Main()
'Load the stylesheet.
Dim xslt As New XslTransform()
xslt.Load(stylesheet1)
'Load the file to transform.
Dim doc As New XPathDocument(filename1)
'Create an XmlTextWriter which outputs to the console.
Dim writer As New XmlTextWriter(Console.Out)
'Transform the file and send the output to the console.
xslt.Transform(doc, Nothing, writer, Nothing)
writer.Close()
End Sub
End Class
W przykładzie użyto następujących dwóch plików wejściowych.
books.xml
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
output.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>ISBN</TD>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:apply-templates select="book"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="book">
<TR>
<TD><xsl:value-of select="@ISBN"/></TD>
<TD><xsl:value-of select="title"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class and Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Używanie klasy XslCompiledTransform ) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
przestrzeni nazw .
Ta metoda ładuje arkusz stylów XSLT, w tym wszystkie arkusze stylów, do których odwołuje się element xsl:include
i xsl:import
. Zasoby zewnętrzne są rozwiązywane przy użyciu elementu XmlUrlResolver bez poświadczeń użytkownika. Jeśli arkusze stylów znajdują się w zasobie sieciowym, który wymaga uwierzytelniania, użyj przeciążenia, które przyjmuje XmlResolver jako jeden z jego argumentów i określ element XmlResolver z wymaganymi poświadczeniami.
Jeśli arkusz stylów zawiera osadzone skrypty, skrypt jest kompilowany do zestawu. Identyfikator URI arkusza stylów służy do tworzenia dowodów, które są stosowane do zestawu.
Uwaga
Jeśli obiekt wywołujący nie ma UnmanagedCode
uprawnień, osadzony skrypt nie jest skompilowany i SecurityException jest zgłaszany. Zobacz SecurityPermission i SecurityPermissionFlag.UnmanagedCode , aby uzyskać więcej informacji.
Dotyczy
Load(String, XmlResolver)
Ładuje arkusz stylów XSLT określony przez adres URL.
public:
void Load(System::String ^ url, System::Xml::XmlResolver ^ resolver);
public void Load (string url, System.Xml.XmlResolver? resolver);
public void Load (string url, System.Xml.XmlResolver resolver);
member this.Load : string * System.Xml.XmlResolver -> unit
Public Sub Load (url As String, resolver As XmlResolver)
Parametry
- url
- String
Adres URL określający arkusz stylów XSLT do załadowania.
- resolver
- XmlResolver
Element XmlResolver używany do ładowania arkusza stylów i wszystkich arkuszy stylów, do których odwołuje się element xsl:import
i xsl:include
.
Jeśli jest null
to wartość domyślna XmlUrlResolver bez poświadczeń użytkownika, jest używana do otwierania arkusza stylów. Wartość domyślna XmlUrlResolver nie jest używana do rozpoznawania żadnych zasobów zewnętrznych w arkuszu stylów, więc elementy xsl:import
i xsl:include
nie są rozwiązywane.
Wartość XmlResolver nie jest buforowana po zakończeniu Load(String, XmlResolver) metody.
Wyjątki
Załadowany zasób nie jest prawidłowym arkuszem stylów.
Arkusz stylów zawiera osadzony skrypt, a obiekt wywołujący nie ma UnmanagedCode
uprawnień.
Przykłady
Poniższy przykład przekształca dokument XML w dokument HTML. Przykład ładuje arkusz stylów XSLT, który zawiera xsl:include
element odwołujący się do innego arkusza stylów. Element XmlUrlResolver jest przekazywany do Load metody , która ustawia poświadczenia niezbędne do uzyskania dostępu do zasobu sieciowego dla dołączonego arkusza stylów.
using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
using System.Net;
public class Sample
{
private const String filename = "books.xml";
private const String stylesheet = "sort.xsl";
public static void Main()
{
//Create the XslTransform.
XslTransform xslt = new XslTransform();
//Create a resolver and set the credentials to use.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;
//Load the stylesheet.
xslt.Load(stylesheet, resolver);
//Load the XML data file.
XPathDocument doc = new XPathDocument(filename);
//Create the XmlTextWriter to output to the console.
XmlTextWriter writer = new XmlTextWriter(Console.Out);
//Transform the file.
xslt.Transform(doc, null, writer, null);
writer.Close();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
Imports System.Net
public class Sample
private shared filename as String = "books.xml"
private shared stylesheet as String = "sort.xsl"
public shared sub Main()
'Create the XslTransform.
Dim xslt as XslTransform = new XslTransform()
'Create a resolver and set the credentials to use.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials
'Load the stylesheet.
xslt.Load(stylesheet, resolver)
'Load the XML data file.
Dim doc as XPathDocument = new XPathDocument(filename)
'Create the XmlTextWriter to output to the console.
Dim writer as XmlTextWriter = new XmlTextWriter(Console.Out)
'Transform the file.
xslt.Transform(doc, nothing, writer, nothing)
writer.Close()
end sub
end class
W przykładzie użyto następujących plików danych jako danych wejściowych.
books.xml
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
sort.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore"/>
<xsl:include href="http://serverA/includefile.xsl"/>
<xsl:template match="book">
<TR>
<TD><xsl:value-of select="@ISBN"/></TD>
<TD><xsl:value-of select="title"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
includefile.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>ISBN</TD>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:apply-templates select="book">
<xsl:sort select="@ISBN"/>
</xsl:apply-templates>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
Uwagi
Uwaga
Klasa XslTransform jest przestarzała w .NET Framework w wersji 2.0. Klasa XslCompiledTransform jest nowym procesorem XSLT. Aby uzyskać więcej informacji, zobacz Using the XslCompiledTransform Class (Używanie klasy XslCompiledTransform) i Migrating From the XslTransform Class (Migrowanie z klasy XslTransform).
XslTransform obsługuje składnię XSLT 1.0. Arkusz stylów XSLT musi zawierać deklarację xmlns:xsl= http://www.w3.org/1999/XSL/Transform
przestrzeni nazw .
Jeśli arkusz stylów zawiera osadzone skrypty, skrypt jest kompilowany do zestawu. Identyfikator URI arkusza stylów służy do tworzenia dowodów, które są stosowane do zestawu.
Uwaga
Jeśli obiekt wywołujący nie ma UnmanagedCode
uprawnień, osadzony skrypt nie jest kompilowany i SecurityException jest zgłaszany. Zobacz SecurityPermission i SecurityPermissionFlag.UnmanagedCode , aby uzyskać więcej informacji.