다음과 같이 XmlDocument Example.xml의 일부가 있습니다.XmlDocument의 NodeList에서 특성을 가져 오려면?
<rapaine dotoc="palin" domap="rattmin">
<derif meet="local" />
<derif meet="intro" />
.
.
.
</rapaine>
여기에서 Nodelist를 만들고 속성을 가져 오기 위해 raplin 요소를 가져옵니다.
이제 속성 'dotoc'과 'domap'이 항상 fixed 인 각각의 값을 갖는 rapaine의 속성인지 확인하고 싶습니다. 그런 다음 'meet'속성을 사용하여 childNodes 'deriff'에 액세스 할 수 있습니다. . 여기 값만 바뀝니다.
코드의 일부를 작성했지만 컴파일 오류는 없지만 디버깅 할 때 for 루프 내에서 속성 및 하위 노드를 검사하지 않는다는 것을 알았습니다.
XmlNodeList listOfSpineRootNodes = opfXmlDoc.GetElementsByTagName("rapine");
for (int x = 0; x < listOfSpineRootNodes.Count; x++)
{
XmlAttributeCollection spineAttributes = listOfSpineRootNodes[x].Attributes;
string id = spineAttributes[0].Value;
if (spineAttributes != null)
{
XmlNode attrToc = spineAttributes.GetNamedItem("dotoc");
XmlNode attrPageMap = spineAttributes.GetNamedItem("domap");
if (attrToc.Value == "palin" && attrPageMap.Value == "rattmine")
{
if (listOfSpineRootNodes != null)
{
foreach (XmlNode spineNodeRoot in listOfSpineRootNodes)
{
XmlNodeList listOfSpineItemNodes = spineNodeRoot.ChildNodes;
if (listOfSpineItemNodes != null)
{
foreach (XmlNode spineItemNode in listOfSpineItemNodes)
{
if (spineItemNode.NodeType == XmlNodeType.Element
&& spineItemNode.Name == "derif")
{
XmlAttributeCollection spineItemAttributes = spineItemNode.Attributes;
if (spineItemAttributes != null)
{
XmlNode attrIdRef = spineItemAttributes.GetNamedItem("meet");
if (attrIdRef != null)
{
spineListOfSmilFiles.Add(attrIdRef.Value);
}
}
}
}
}
}
}
}
}
어디로 잘못 가고 있는지 말해 주시겠습니까 .. 고마워 ....
오, 그 위대한 Luks. 링크 및 코드의 일부를 가져 주셔서 감사합니다. –
내 기쁨! 행복한 학습. :-) – Cerebrus