首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用XPath读取xml

无法使用XPath读取xml
EN

Stack Overflow用户
提问于 2011-11-10 16:50:45
回答 2查看 763关注 0票数 0

我需要解析XMind包中的content.xml文件。

文件如下所示

代码语言:javascript
复制
<xmap-content xmlns="urn:xmind:xmap:xmlns:content:2.0" xmlns:fo="http://www.w3.org/1999/XSL   /Format" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0">

   <sheet id="sdfasdfsdf">
      <title> Sheet1 </title>
   </sheet>

   <sheet id="fgasdfgasr">
       <title> Sheet2 </title>
   </sheet>
<xmap-content>

我需要得到所有工作表的标题列表。

我正在使用XPathExpression expr = navigator.Compile("//sheet");

但我猜它不起作用

该怎么做。任何建议或代码都可以。

要提前做好准备。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-10 17:09:23

您的XML定义了默认名称空间:urn:xmind:xmap:xmlns:content:2.0。因此您需要将其传递给带有前缀的XML引擎,然后使用表达式:

代码语言:javascript
复制
//ns:sheet

或者用另一种方式:

代码语言:javascript
复制
//*[local-name() = 'sheet']
票数 2
EN

Stack Overflow用户

发布于 2011-11-10 17:02:04

试一试

代码语言:javascript
复制
XPathExpression expr =  navigator.Compile("xmap-content/sheet");

编辑:

代码语言:javascript
复制
string st = @"<xmap-content xmlns=""urn:xmind:xmap:xmlns:content:2.0"" xmlns:fo=""http://www.w3.org/1999/XSL   /Format"" xmlns:svg=""http://www.w3.org/2000/svg"" xmlns:xhtml=""http://www.w3.org/1999/xhtml"" xmlns:xlink=""http://www.w3.org/1999/xlink"" version=""2.0"">

            <sheet id=""sdfasdfsdf"">
                <title> Sheet1 </title>
            </sheet>

            <sheet id=""fgasdfgasr"">
                <title> Sheet2 </title>
            </sheet>
        </xmap-content>";

XmlDocument document = new XmlDocument();
document.LoadXml(st);

XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable); 

manager.AddNamespace("xm", "urn:xmind:xmap:xmlns:content:2.0"); 

var titles = document.SelectNodes("//xm:sheet/xm:title", manager);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8076910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档