2011-06-29 7 views
2

MSXMLDOMDocumentを使用して従来のASP環境を使用しています。私はこの例では、この値は「2.0」で、スタイルシートのバージョンを取得しようとしていますMSXMLDOMDocument.selectSingleNodeをネームスペースで使用する方法を取得する

<?xml version="1.0" encoding="utf-8" ?> 
<xsl:stylesheet version="2.0" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:xhtml="http://www.w3.org/1999/xhtml" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:fn="http://www.w3.org/2005/02/xpath-functions" 
    xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes" 
    exclude-result-prefixes="xhtml xsl fn xs xdt"> 

</xsl:stylesheet> 

:ロードされたXMLは、XSLです。 私はこのpurpouseのためにXPathを使いたいと思っていましたが、私の問題は、古典的なaspのxpathエンジンにxslの名前空間を追加する方法がわかりません。

質問:古典的なASPでMSXMLDOMDocumentを使用してxsl:stylesheetのバージョン属性を取得するにはどうすればよいですか?

+0

良い質問、+1。完全で短くて簡単な解決策については私の答えを見てください。詳細な説明もあります。 –

答えて

2

AFAIR、XPath式で登録された接頭辞を使用できるように名前空間を登録する方法があります。

しかし、あなたの場合、これは必ずしも必要ではありません

ちょうど使用:

ここ
/*/@version 

我々はxsl:stylesheetは(および任意の整形式XML文書は、正確に1つのトップの要素を持っていなければならない)XML文書の最上位要素であるという事実を使用して - 私たちはできます名前を一切指定することなく、このようなトップ要素を指定します。

version属性に任意の名前空間を指定する必要はありません.Xpathでは、XML文書に定義されているデフォルトの名前空間がある場合でも、接頭辞のない属性名は「名前空間なし」になるからです。

+0

ありがとう、賢い解決策。 – MLewi

+0

@MLewi:どうぞよろしくお願いいたします。 –

関連する問題