XmlNode 값과 InnerText
URL로 가득 찬 XML을 사용하여 학교용 ping 응용 프로그램을 만들고 있습니다. 나는 XmlNode.Value
null로 인해 한 시간을 잃었습니다 .
그런 다음로 변경했고 InnerText
잘 작동했습니다.
이제 MSDN은 .Value가 노드의 값을 InnerText
반환하고 노드와 모든 자식 노드의 연결된 값을 반환 한다고 말했기 때문에 차이점이 무엇인지 궁금 합니다.
누군가 나를 위해 이것을 설명해 주시겠습니까?
<sites>
<site>
<url>www.test.be</url>
<email>test@test.be</email>
</site>
<site>
<url>www.temp.be</url>
<email>temp@temp.be</email>
</site>
<site>
<url>www.lorim.ipsum</url>
<email>interim.address@domain.com</email>
</site></sites>
예를 들어 XML이 <Foo>Bar</Foo>
"Bar" 와 같은 경우 실제로 별도의 노드 인 XmlText
노드 (에서 하위 클래스로 분류 됨 XmlNode
) 로 간주 됩니다 . Value
해당 XmlText
노드 의 속성은 "Bar"입니다.
"Foo"는 XmlElement
(또한에서 하위 클래스로 분류 됨 XmlNode
) 로 간주됩니다 . XmlNode.Value
노드 유형에 따라 다른 것을 반환합니다. 항상 노드에 대해 반환 되는 이 표 를 참조하십시오 .Value
null
Element
InnerText
푸 노드가 정상으로 돌아 "바"가 (이 경우, 단지 하나 개의 아이들의 값을 연결하기 때문에의 XmlText
노드).
비슷한 상황이있었습니다. 내가 한 것은 현재 노드의 첫 번째 자식을 선택하고 그것이 XMLtext인지 확인한 다음 그 값을 표시하는 것입니다.
XmlNodeList xNList = xDOC.SelectNodes("//" + XMLElementname);
foreach (XmlNode xNode in xNList)
{
if (xNode.ChildNodes.Count == 1 &&
xNode.FirstChild.GetType().ToString() == "System.Xml.XmlText")
{
XMLElements.Add(xNode.FirstChild.Value);
}
else
{
XMLElements.Add("This is not a Leaf node");
}
}
XML 사양은 용어와 어떤 유형의 XML 객체를 구성하는지에 대해 매우 까다 롭습니다. 언급했듯이 element
가치가 없습니다. 이것은 attribute
(그리고 아마도 몇 가지 다른 노드 유형) 에만 attribute
해당 됩니다.element
name='value'
혼란 스럽다고 생각되면 자식과 하위 항목 또는 루트 노드와 문서 요소의 차이점을 확인하십시오!
에 관련하여 MSDN , Value
재산 XmlNodeType.Element
반환 :
없는. XmlElement.InnerText 또는 XmlElement.InnerXml 속성을 사용하여 요소 노드의 값에 액세스 할 수 있습니다.
url 요소가 리프 노드이므로 InnerText (또한 InnerXml) 속성에는 요소 값이 포함됩니다. 요소 노드의 경우 msdn 설명서 https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.value(v=VS.110).aspx에 표시된대로 value 속성은 null이됩니다 .
참고 URL : https://stackoverflow.com/questions/7877609/xmlnode-value-vs-innertext
'programing' 카테고리의 다른 글
어떤 버전의 .NET이 어떤 버전의 Windows와 함께 제공됩니까? (0) | 2020.10.30 |
---|---|
Unix에서 세션 및 프로세스 그룹의 사용 및 의미? (0) | 2020.10.30 |
Firebase 및 GraphQL? (0) | 2020.10.30 |
웹 서비스를 통해 Google의 트래픽 데이터에 액세스 (0) | 2020.10.30 |
Git Bisect를 중단하는 방법 (0) | 2020.10.30 |