首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我正试图从c#中的xml文件中读取目录,但遇到了问题。

我正试图从c#中的xml文件中读取目录,但遇到了问题。
EN

Stack Overflow用户
提问于 2011-03-07 16:41:58
回答 2查看 457关注 0票数 3
代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<form:Documents xmlns:form="http://www.abbyy.com/FlexiCapture/Schemas/Export/FormData.xsd" xmlns:addData="http://www.abbyy.com/FlexiCapture/Schemas/Export/AdditionalFormData.xsd">
    <_Document_Definition_1:_Document_Definition_1 addData:ImagePath="C:\POC\Export\Test.pdf" xmlns:_Document_Definition_1="http://www.abbyy.com/FlexiCapture/Schemas/Export/Document_Definition_1.xsd">
        <_Page_1>
            <_First_Name>John</_First_Name>
            <_Last_Name>Doe</_Last_Name>
        </_Page_1>
    </_Document_Definition_1:_Document_Definition_1>
</form:Documents>

我有xml包含的pdf文件目录,我需要阅读。我可以从_Page_1节点读取名字和姓,但不知道如何读取ImagePath。下面是我要从_Page_1读取的代码

代码语言:javascript
运行
复制
       XDocument xDoc = XDocument.Load("Test.xml");
       var poc = from p in xDoc.Descendants("_Page_1")
       select new
              {
                  FirstName = p.Element("_First_Name").Value,
                  LastNumber = p.Element("_Last_Name").Value
              };

        // Execute the query 
        foreach (var customer in poc)
        {
            Console.WriteLine(customer.FirstName);
            Console.WriteLine(customer.LastName);
        }

        //Pause the application 
        Console.ReadLine();

谢谢BrokenGlass,它起作用了。我还有一个问题。如果我有几个_Document_Definition节点的迭代,我如何读取每个迭代。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<form:Documents xmlns:form="http://www.abbyy.com/FlexiCapture/Schemas/Export/FormData.xsd" xmlns:addData="http://www.abbyy.com/FlexiCapture/Schemas/Export/AdditionalFormData.xsd">
    <_Document_Definition_1:_Document_Definition_1 addData:ImagePath="C:\POC\Export\Test.pdf" xmlns:_Document_Definition_1="http://www.abbyy.com/FlexiCapture/Schemas/Export/Document_Definition_1.xsd">
        <_Page_1>
            <_First_Name>John</_First_Name>
            <_Last_Name>Doe</_Last_Name>
        </_Page_1>
    </_Document_Definition_1:_Document_Definition_1>
<_Document_Definition_1:_Document_Definition_1 addData:ImagePath="C:\POC\Export\Test2.pdf" xmlns:_Document_Definition_1="http://www.abbyy.com/FlexiCapture/Schemas/Export/Document_Definition_1.xsd">
        <_Page_1>
            <_First_Name>Jane</_First_Name>
            <_Last_Name>Doe</_Last_Name>
        </_Page_1>
    </_Document_Definition_1:_Document_Definition_1>
</form:Documents>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-07 16:50:37

您缺少了访问这些属性的XML命名空间引用,这是可行的:

代码语言:javascript
运行
复制
XDocument doc = XDocument.Load(@"test.xml");
XNamespace _Document_Definition_1 = "http://www.abbyy.com/FlexiCapture/Schemas/Export/Document_Definition_1.xsd";
XNamespace addData = "http://www.abbyy.com/FlexiCapture/Schemas/Export/AdditionalFormData.xsd";
string impagePath = doc.Descendants(_Document_Definition_1 + "_Document_Definition_1")
                       .First()
                       .Attribute(addData + "ImagePath")
                       .Value;
票数 1
EN

Stack Overflow用户

发布于 2011-03-07 16:53:52

看起来Imagepath是一个属性,而不是一个元素。因此你无法读懂它。检查xml文件中的属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5222374

复制
相关文章

相似问题

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