私はここで単純なものが欠けていることを知っていますが、それを理解することはできません。他にも、より複雑なXMLとXSLTが機能していますが、何らかの理由で、この特定のXMLとXSLTを実行できません。シリアル化中に生成されるのはXMLファイルの構造だと思います。
私が探しているのは、XML要素の値を取得してHTMLで表示することです。この問題に関連する特定の領域を除いて、他のすべてを取り除きました。
コードの「html」変数では、locationの値は常に空白です。
XML
<WidgetBuilder>
<DefaultLocation>1234</DefaultLocation>
</WidgetBuilder>
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0" exclude-result-prefixes="msxsl">
<xsl:output method="html" indent="yes" />
<xsl:template match="/">
LOCATION: '<xsl:value-of select="DefaultLocation" />'
</xsl:template>
</xsl:stylesheet>
コード
string xml = File.ReadAllText(@"..\..\InitXml1.xml");
string xslt = File.ReadAllText(@"..\..\InitXslt1.xslt");
XPathDocument doc = new XPathDocument(new StringReader(xml));
XslCompiledTransform xslTransform = new XslCompiledTransform();
xslTransform.Load(XmlReader.Create(new StringReader(xslt)));
StringWriter sw = new StringWriter();
xslTransform.Transform(doc, null, sw);
string html = sw.ToString();
Console.WriteLine(html);