IT TIP

':'문자, 16 진수 값 0x3A는 이름에 포함될 수 없습니다.

itqueen 2020. 10. 23. 19:48
반응형

':'문자, 16 진수 값 0x3A는 이름에 포함될 수 없습니다.


다음과 같은 요소를 포함하는 xml 파일이 있습니다.

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

코드를 사용하여 액세스하려고 할 때 :

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

이 오류가 발생합니다.

System.Web.Services.Protocols.SoapException : 서버가 요청을 처리 할 수 ​​없습니다. ---> 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"가에 참조하는 네임 스페이스를 찾을 수 있습니다.


다음 과 같이 네임 스페이스를 {... 에 넣으십시오 }.

string xfaNamespace = "{http://www.xfa.org/schema/xfa-template/2.6/}";

같은 오류가 발생했습니다. 코드를 추가하고 있음을 발견했습니다 ...

var ab = "http://whatever-the-url-is";

...하지만 ab는 문자열로 결정되었습니다. 이로 인해 OP에서보고 한 오류가 발생했습니다. VAR 키워드를 사용하는 대신 실제 데이터 유형 XNamespace를 사용했습니다.

XNamespace ab = "http://whatever-the-url-is";

... 그리고 문제는 사라졌습니다.


네임 스페이스를 고려하여 시도 할 수있는 Get 메서드의 오버로드가 있습니다. 이 시도:

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

문서에서 네임 스페이스 가져 오기

var ns = doc.Root.Name.Namespace;

참고 URL : https://stackoverflow.com/questions/2575546/the-character-hexadecimal-value-0x3a-cannot-be-included-in-a-name

반응형