、例えば、SELECTNODES、私はバグを検討任意の名前空間宣言、含まれている文書、での動作があります:XMLドキュメントは、任意の名前空間宣言(例のxmlns =が含まれている場合マイクロソフトのxpath名前空間 "バグ"をどう扱うのですか?使用したxPathでのXmlDocumentを処理する場合
は... ...か何か類似している)、xqueryは常に空になります。
これに対処の怠惰なお尻方法はXmlDocumenntにロードする前にXMLテキストに次のコードを実行することです:我々はまた、XPathの呼び出しに名前空間情報をPALLしてXmlNamespaceManagerを使用することができます
pg = Regex.Replace(pg, @"xmlns\s*\=\s*""[^""]*""", "");
pg = Regex.Replace(pg, @"xmlns\s*\=\s*'[^']*'", "");
。私は両方のアプローチが面倒だと思います(私は通常、ソフトウェアが扱う文書の名前空間を知らず、また気にしません)。
MicrosoftのXPathパーサーのこの動作を無効にする使いやすい方法がありますか?これは "気分"です。
これはバグではなく、正しい動作です。 XMLの名前空間は関連しています。 – Lucero
名前空間を解消する前に名前空間を理解する方法を学びます。 –
ですから、事前にわからない任意の名前空間を持つ文書を解析する良い方法を教えてください。 –