XmlNode 값 대 내부 텍스트
저는 URL이 가득한 XML로 학교용 핑 애플리케이션을 만들고 있습니다.저는 한 시간을 잃었습니다.XmlNode.Value
null을 생성하고 있었습니다.
그다음에 제가.InnerText
그리고 잘 작동했습니다.
MSDN에서 그렇게 말하니까 뭐가 다른지 궁금했어요.값은 노드의 값을 반환하고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
노드는 "바"가 됩니다.
"Foo"는 다음과 같이 간주됩니다.XmlElement
(또한 에서 하위 클래스로 분류됨XmlNode
).XmlNode.Value
노드 유형에 따라 서로 다른 것을 반환합니다.다음 표를 참조하십시오.Value
항상 돌아옵니다.null
위해서Element
노드들.
그InnerText
Food 노드는 자식의 값을 연결하기 때문에 "Bar"를 반환합니다(이 경우 오직 하나만 해당).XmlText
노드).
저도 비슷한 상황이었습니다.제가 한 것은 현재 노드의 첫 번째 자식을 선택하여 XML 텍스트인지 확인한 후 값을 표시했습니다.
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
반환:
null. XmlElement를 사용할 수 있습니다.내부 텍스트 또는 XmlElement.요소 노드의 값에 액세스하는 InnerXml 속성입니다.
url 요소가 리프 노드이므로 InnerText(InnerXml) 속성에 요소 값이 포함됩니다.요소 노드의 경우 msdn 설명서 https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.value(v=VS.110).aspx 에 표시된 값 속성이 null입니다.
언급URL : https://stackoverflow.com/questions/7877609/xmlnode-value-vs-innertext
'programing' 카테고리의 다른 글
입력을 대문자로 변경 (0) | 2023.09.13 |
---|---|
C#에서 XmlReader로 Xml 읽기 (0) | 2023.09.13 |
부트스트랩 3의 툴팁에 줄 바꿈 추가 (0) | 2023.09.13 |
MariaDB 도커 이미지 빌드 실패 (0) | 2023.09.08 |
PowerShell의 첫 번째부터 두 번째 끝까지 배열 인덱스 (0) | 2023.09.08 |