关于节点中的空节点
如下xml片断中的空节点<br/>和外层的<p>节点是什么关系?如何提取出被分隔的两行字符串?假设p和br有可能被随机地用来换行,如何能不加区分地从p或br分隔的字符串提取中每行字符串?
<P>第一行<br/>第二行</p>
<p>第三行</p>
[解决办法]
string xml = "<p>第一行<br/>第二行</p>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNodeList nl = doc.SelectNodes("//p/text()");//选择p下面的文本节点 for (int i = 0; i < nl.Count; i++) { Response.Write(nl[i].OuterXml); }
[解决办法]
那些文本和<br/>是一个级别,都是p的子节点
xpath一般在各种语言中都能用,你如果使用的是其它技术,也可以用xpath来解决
[解决办法]
被<br/>分开的文本每部分都算一个独立的子节点,加上<br/>节点,用父节点的.ChildNodes()可以获得。