如何获取匹配文本的InnerXml

时间:2011-12-10 14:45:35

标签: c# xml

我正在使用C#。

我有XmlElement InnerXml

<b xpage="5" xid="85">3-6.  Title</b><i>. The Content</i>

使InnerText成为

3-6。标题。内容

现在我有一个值为

的匹配变量
3-6.  Title.

我想得到的是InnerXml ..ie的其余部分。

<i> The Content</i>

请帮助。

2 个答案:

答案 0 :(得分:0)

,您将获得所需的xml字符串<i>. The Content</i>

XmlDocument doc = new XmlDocument();
doc.LoadXml("<rootxml><b xpage=\"5\" xid=\"85\">3-6.  Title</b><i>. The Content</i></rootxml>");

XmlNode root = doc.FirstChild;

var completeString = root["b"].OuterXml + root["i"].OuterXml;
if (completeString.StartsWith("3-6.  Title.") {
  XmlElement xmlElement = root["i"];
  var iContent = xmlElement.OuterXml;
  Console.WriteLine(iContent);
}

希望这会有所帮助

答案 1 :(得分:0)

看起来您有两个兄弟节点BI。要匹配B的特定实例,请使用XPath文本选择器。

string xpath = "//*/b[text()='3-6.  Title']"; // replace wildcard with real path

http://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic=/db2/rbafzxpathqueryexmp.htm

匹配B后,您可以使用NextSibling属性查找I

http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.nextsibling.aspx