1. ホーム
  2. c#

[解決済み] 16進数で0x3Aである':'文字は名前に含めることができません。

2023-07-15 06:05:01

質問

xmlファイルには、以下のような要素が含まれています。

<ab:test>Str</ab:test>  

コードを使ってアクセスしようとしているとき。

XElement tempElement = doc.Descendants(XName.Get("ab:test")).FirstOrDefault();

こんなエラーが出ます。

System.Web.Services.Protocols.SoapException が発生しました。Server was unable to process request. ---> System.Xml.XmlException: 16進数で0x3Aである':'文字は名前に含めることができません。

どのようにアクセスすればよいのでしょうか?

どのように解決するのですか?

名前空間を使いたい場合、LINQ to XMLを使えば本当に簡単です。

XNamespace ab = "http://whatever-the-url-is";
XElement tempElement = doc.Descendants(ab + "test").FirstOrDefault();

を探します。 xmlns:ab=... セクションを探し、どの名前空間 URI "ab" を参照しているかを調べます。