【发布时间】:2013-12-18 13:30:17
【问题描述】:
我有一个字符串参数,其中包含 xml 内容。基本上字符串里面有一个XML。
string S = funcThatReturnsXML (parameters);
S有下一段文字:
<?xml version="1.0" encoding="utf-8" ?>
<tagA>
<tagB>
<tagBB>
..
.
.
</tagBB>
.
.
</tagB>
<tagC>
..
..
.
</tagC>
</tagA>
funcThatReturnsXML (parameters) 创建了一个XmlDocument 对象,但将其作为string 返回,我无法更改此函数,很多东西都可以使用它。
尝试创建 XmlDocument objetc,但 SelectSingleNode 返回 null。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(S);
XmlNode root = xmlDoc.SelectSingleNode("tagB");
如何从字符串 S(不是 XML 对象)中删除特定节点,例如 <tagB>
编辑:这是我测试的 XML:
<?xml version="1.0" ?>
- <Request xmlns:xsi="http://www.mysite.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <info xmlns="http://www.mysite.com">
<RequestTR>54</RequestTR>
<time>2013-12-22</time>
</info>
- <Parameters xmlns="http://www.mysite.com">
<id>3</id>
<name>2</name>
</Parameters>
<title>Request</title>
</Request>
【问题讨论】:
-
您是否有特定原因无法创建
XmlDocument实例、调用LoadXml()并进行处理?我问是因为你写了“不是 XML 对象”。 -
在
funcThatReturnsXML (parameters)中,它创建了一个XML Object,但将其作为stringxmlObject.InnerXml返回。我不能改变这个基本函数,所以我只想修复我正在处理的字符串 -
我建议你(重新)从字符串构建一个 XmlDocument。
-
试过了...
xmlDoc.SelectSingleNode("tagB");返回 null -
xpath 错误...尝试
xmlDoc.SelectSingleNode("/tagA/tagB")或xmlDoc.SelectSingleNode("//tagB")。