저는 C#을 처음 사용하고 XmlElement와 SelectSingleNode 메서드를 사용하기 시작했습니다. XML 파일에 값 (예 : <tag>value</tag>
)이 있거나 비어있을 수있는 태그 (예 : <tag></tag>
)가 있습니다. 비어있는 경우 SelectSingleNode는 null을 반환합니다.C# XmlElement : SelectSingleNode는 빈 문자열에 대해 null을 반환합니까?
저는 현재 태그의 값을 잡기 위해 다음 코드를 사용하고 있습니다 :
는XmlElement elem = ....
string s = elem.SelectSingleNode("somepath").Value;
이 코드는 분명히 빈 태그에 대한 예외를 발생시킵니다. 그러나 나를 위해 빈 태그는 유효한 값이며, 여기서 문자열의 값은 ""이 될 것으로 기대합니다.
try ... catch를 사용하여 SelectSingleNode를 호출 할 때마다 많은 양의 코드가 낭비되는 것 같습니다 (빈 필드가 많음).이를 위해 더 좋은 방법이 있다고 확신합니다.
권장 방법은 무엇입니까?
편집 : 요청에 따라
는 샘플 XML 코드는 다음과 같습니다
<Elements>
<Element>
<Name>Value</Name>
<Type>Value</Type> <-- may be empty
<Color>Value</Color>
</Element>
<Element>
<Name>Value</Name>
<Type>Value</Type>
<Color>Value</Color>
</Element>
</Elements>
고사 코드 :
XmlDocument doc = new XmlDocument();
doc.Load("name.xml");
foreach (XmlElement elem in doc.SelectNodes("Elements/Element"))
{
myvalue = elem.SelectSingleNode("Type/text()").Value;
}
전체 코드 샘플을 게시 할 수 있습니까? 아니면 제공된 XML 블록과 직접적인 상관 관계가있는 것입니까? –
샘플 XML을 게시 할 수 있습니까? –
예, 조금 더 많은 코드 샘플과 구문 분석에 사용하는 XML이 있습니다. 이전에 SelectSingleNode를 사용했지만 언급 한 동작을 보지 못했습니다. – SolutionYogi