选择两个xml标签内的所有元素
问题描述:
有谁知道一种方法来使用c#在word中提取书签的xml内容。我正在尝试使用openxml在书签上进行一些字符串替换,并且无法选择书签开始和书签结束标记之间的所有元素。选择两个xml标签内的所有元素
感谢
答
这里的问题不是读取XML树到内存,但实际上获得两个XML节点之间的节点。 ooxml中xml文档的开始和结束节点是独奏,意思是没有子节点。这些只是说明书签的开始和书签的结束。如果封装在书签中的所有内容都是书签节点的子节点,而不是当前使用的xml标签,那么对我来说更有意义。
由于xPath导航并不适合这个概念,所以您可以做的一件事是循环遍历xDoc中的每个节点并查找bookmarkstart和end标签。把所有东西都添加到数组或新的xDoc中。从这一点开始,您可以进一步解析节点以获取所需的数据。希望这是有道理的。
+0
感谢您为这样的旧帖子做出贡献。 – JDB 2012-10-11 02:03:55
一旦将XML树读入内存,开始和结束标记之间的所有元素是不是书签节点的后代? – 2012-03-22 02:47:41
以及书签节点是从我所了解的(ptw节点的节点的后嗣)(btw你有任何想法如何我可以读取树到内存中?) – 2012-03-22 02:50:40
我不是OpenXML专家,但我的观点是,一旦你有一个内存中的XML树应该能够获取任何节点的子节点。一旦拥有了书签节点的子节点,就可以获得子节点的子节点和子节点的子节点,直到拥有书签节点的所有子节点为止。这些后代将成为书签开始和结束标签之间的元素。 – 2012-03-22 02:52:35