XMLを構築するために必要なすべてのxpathがあります。したがって、xpathと関連する値を使用してこのXMLを構築する必要があります。ただし、次のように、XMLが同じ親に同じタグを持つ必要がある場合があります。
<root>
<Name>
<Address>
<Fname>bbb</Fname>
<Lname>bbb</Lname>
<Official>o</Official>
<Official>r</Official>
<District>Ekm Edited</District>
<State>Kerala Edited</State>
</Address>
<Sex>
<Field1>m</Field1>
<Field1>f</Field1>
</Sex>
<Qualification>
<EDUCATION>10</EDUCATION>
</Qualification>
</Name>
</root>
異なるinnerText[同じ]のタグ<Official>o</Official>
と繰り返しタグを見ることができます。しかし、そのようなXMLを作成しようとすると、出力は次のようになります。<Official>r</Official>
<Sex><Field1>m</Field1><Field1>f</Field1></Sex>
<Sex>
<Field1>m, f</Field1>
</Sex>
と <Official>o, r</Official>
以下は、xpathに基づいてノードを作成するために使用したコードです。
public XmlNode makeXPath(XmlDocument doc, string xpath, string innertext)
{
string[] partsOfXPath = xpath.Split('/');
XmlNode node = null;
for (int xpathPos = partsOfXPath.Length; xpathPos > 0; xpathPos--)
{
string subXpath = string.Join("/", partsOfXPath, 0, xpathPos);
node = doc.SelectSingleNode(subXpath);
if (node != null)
{
// append new descendants
for (int newXpathPos = xpathPos; newXpathPos < partsOfXPath.Length; newXpathPos++)
{
node = node.AppendChild(doc.CreateElement(partsOfXPath[newXpathPos]));
}
break;
}
}
node.InnerText = innertext.TrimStart(' ');
return node;
}
では、innerTextがコンマで区切られた単一のタグではなく、個別のタグを作成するにはどうすればよいですか。
私を編集
問題を見つけました。xpathと対応する値をクエリ文字列としてこのページに送信していました。ここで、同じタグが複数存在する私の場合、Request.QueryStringはコンマ区切りの値を生成します[例:m、f]。
ノードに属性を追加しようとしましたが、コンマ区切りのデータの最後のデータのみが追加されます。
修正はありますか?同じxpathノードを異なるノードにするいくつかの属性を持つノードを追加する関数をどのように呼び出すべきかと同じように。前もって感謝します。