2012-03-19 14 views
1

現在、テキストの場所からXMLNodeを探したいと思っています。C#XMLエディタ - 一致するXMLNode

私はテキストボックスにXMLファイルを持っている:私は現在を解析でき

<Assets id="assets"> 
    <Asset id="background_asset" url="images/rooms/office/background.jpg" /> 
</Assets> 

を、私はテキストボックスの中に私のカーソル/キャレット位置から

を現在のノード名を取得したいですよXMLカーソル/キャレット位置のタグが、私は、親を見つけることができないだろう...

たXMLDocument

からのXMLNodeを得るための方法がある場合、私は思ったんだけど
+0

何かが見つからないかもしれませんが、[XmlNode.ParentNode](http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.parentnode.aspx)プロパティを使用できないのはなぜですか? –

+0

できました!しかし、私はXMLファイル全体を解析し、TextBoxでどのノードを選択したかわからない – Vieo

答えて

1

あなたはそれを把握することができます、現在のカーソル位置からファースト)

1をカーソルの左側の最初の<シンボルを取得します。

2)その後、Regexは<TagNameからタグ名を取得します。

これで、その名前でノードに移動するのに十分です。その名前のノードが複数ある場合は、内容を比較したいと思うでしょう。

は、XMLドキュメントの各ノードを取得し、子要素、.ToString()を介して出力にそれをのそれを削除し、その長さを取得し、設定:次に、あなたは、別のアイデアが

など、その親を取得するには、そのノードを使用することができますテキストの長さによるノードのインデックス。次に、カーソル位置から文字の書類の先頭からその位置を取得し、索引のどのノードを決定します。

関連する問題