0

40 を超える ID とサプライヤを持つ XML から ID とサプライヤを取得するという要件があります。必要なのは、特定の ID とサプライヤの親ノードを取得し、それを別の xml に追加することだけです。

しかし、私は ID とサプライヤーを取得することができたので、今は c# で xml 全体を取得したいと考えています。

c#

  var action = xmlAttributeCollection["id"];
  xmlActions[i] = action.Value;
  var fileName = xmlAttributeCollection["supplier"];
  xmlFileNames[i] = fileName.Value;

これは、ID とサプライヤーを取得するために使用したコードです。

4

3 に答える 3

2

問題をより明確に理解できるように、Xml ツリーをトラバースする方法についてもう少し具体的に説明し、変数の型を指定することをお勧めします。これが私の答えです:

items[i] が XmlNode であると仮定すると、この場合は「hoteId」ノードで作業しています。ノードの直接の祖先を返す XmlNode.ParentNode というプロパティがあり、ルート ノードの場合は null を返します。

XmlNode currentNode = items[i] as XmlNode; //hotelId
XmlNode parentNode = currentNode.ParentNode; //hotelDetail
string outerXml = parentNode.OuterXml; //returns a string representation of the entire parent node

完全な例:

XmlDocument doc = new XmlDocument();
doc.Load("doc.xml");

XmlNode hotelIdNode = doc.SelectSingleNode("hoteldetail//hotelId"); //Find a hotelId Node
XmlNode hotelDetailNode = hotelIdNode.ParentNode; //Get the parent node
string hotelDetailXml = hotelDetailNode.OuterXml; //Get the Xml as a string
于 2013-10-29T05:31:35.433 に答える
0

XmlNode node = doc.SelectSingleNode("//hoteldetail"); のような親 XML を取得できます。node.innerXml;

于 2013-10-29T05:31:09.037 に答える