次の要件を満たすための簡単で滑らかな方法を見つけようとしています。
この配置の XML メッセージがあります。
<persons>
<person>
<firstName>Mike</firstName>
<middleName>K.</middleName>
<lastName>Kelly</lastName>
</person>
<person>
<firstName>Steve</firstName>
<lastName>David</lastName>
</person>
<person>
<firstName>Laura</firstName>
<middleName>X.</middleName>
<lastName>Xavier</lastName>
</person>
</persons>
xPath 式を使用してこの XML を解析したいと考えています。
persons/person/firstName
persons/person/middleName
persons/person/lastName
私の目的は、このような firstName、middleName、および lastName タグの値を、次のような文字列オブジェクトのリストに格納することです。
firstNameList[0] = "Mike";
firstNameList[1] = "Steve";
firstNameList[2] = "Laura";
middleNameList[0] = "K.";
middleNameList[1] = null;
middleNameList[2] = "X.";
lastNameList[0] = "Kelly";
lastNameList[1] = "David";
lastNameList[2] = "Xavier";
私の C# コードでは、次のようにします。
XmlNodeList firstNameNodeList = xmlDoc.SelectNodes("persons/person/firstName", nsmgr);
XmlNodeList middleNameNodeList = xmlDoc.SelectNodes("persons/person/middleName", nsmgr);
XmlNodeList lastNameNodeList = xmlDoc.SelectNodes("persons/person/lastName", nsmgr);
このコードの問題は、ミドル ネームの場合、XML リストに 2 人称がないことです。したがって、 middleNameNodeList は 2 つの値 (K. と X.) を返しますが、1 人目、2 人目、3 人目のミドルネームが欠落しているかどうかはわかりません。
SelectNodes() API が反復またはインデックス ID を提供し、繰り返し要素が特定の値を持つことを期待していました。
必要なものを達成する最も簡単な方法を教えてください。助けてくれてありがとう、JK