我的'.xml'文件看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Requestes>
<Single_Request num="1">
<numRequest>1</numRequest>
<IDWork>1</IDWork>
<NumObject>1</NumObject>
<lvlPriority>Высокий</lvlPriority>
</Single_Request>
<Single_Request num="2">
<numRequest>2</numRequest>
<IDWork>2</IDWork>
<NumObject>2</NumObject>
<lvlPriority>Средний</lvlPriority>
</Single_Request>
<Periodic_Request num="1">
<numRequest>3</numRequest>
<IDWork>23</IDWork>
<pFrequency>23</pFrequency>
<lvlPriority>Низкий</lvlPriority>
<time_service>23</time_service>
<time_last_service>23</time_last_service>
<relative_time>23</relative_time>
</Periodic_Request>
</Requestes>
所以我需要删除属性值等于Single_Request
的{{1}}。我试过这样做:
sTxtBlock_numRequest.Text
不幸的是,没有什么是幸福的,不知道如何解决这个问题。
这就是为什么,我期待着你的帮助。
答案 0 :(得分:2)
您正在将属性值与字符串文字"sTxtBlock_numRequest.Text"
进行比较。您应该传递文本框文本的值:
doc.Root.Elements("Single_Request")
.Where(t => (string)t.Attribute("num") == sTxtBlock_numRequest.Text)
.Remove();
注意 - 当您获得root的Elements
元素时,最好使用Single_Request
,因为Descendants
将搜索整个树,而不是仅查看直接子项。您也可以在不保存查询到本地变量的情况下调用Remove()
。