删除内部文本 - XPath

时间:2014-01-30 20:59:13

标签: xml vb.net xpath

环顾四周但找不到答案:

我有一个XML模板,用于通过替换模板中的变量来快速组合文档。但是,当值为空时,我希望模板的标签返回到表示打开/关闭的单个标签。

例如:

 <root>
  <child1>@@Variable@@</child1>
 </root>

所以如果我用以下方法替换它:

 xml.selectsinglenode("/root/child1").innerText = Nothing

 xml.selectsinglenode("/root/child1").innerText = ""

我最终得到了

 <root>
  <child1>
  </child>
 </root>

而不是我想要的输出:

 <root>
  <child1/>
 </root>

我几乎可以肯定我错过了一些简单的东西,但我一直在这,我似乎无法弄清楚它是什么。

1 个答案:

答案 0 :(得分:1)

SelectSingleNode方法结果投放到XmlElement并将IsEmpty属性设置为true:

DirectCast(xml.SelectSingleNode("/root/child1"), XmlElement).IsEmpty = true;