下記のように私は常にXmlDocument Example.xmlの一部を持っている:XmlDocumentのNodeListから属性を取得するには?
<rapaine dotoc="palin" domap="rattmin">
<derif meet="local" />
<derif meet="intro" />
.
.
.
</rapaine>
ここで私はノードリストを作成し、その属性を取得するためにraplin要素を取得しています。
属性 'dotoc'と 'domap'が常に固定されたそれぞれの値を持つ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 great.Thinksリンクとコードの一部です。 –
私の喜び!ハッピーラーニング。 :-) – Cerebrus