2011-03-07 5 views
3
<?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> 

J'ai le dossier de xml contenant du dossier de pdf que j'aurais besoin de lire. Je peux lire le prénom et le nom du noeud _Page_1 mais je ne sais pas comment lire ImagePath. Voici mon code pour lire _Page_1J'essaye de lire le dossier du dossier de xml dans le C# et ai le problème

 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(); 

Merci BrokenGlass, il travaille. J'ai une autre question. Que faire si j'ai plusieurs itérations du noeud _Document_Definition, comment puis-je lire chaque itération.

<?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> 

Répondre

1

Il vous manque les XML namespace références pour accéder à ces attributs, cela fonctionne:

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; 
0

Il ressemble à IMAGEPATH est un attribut pas un élément. Par conséquent, vous n'êtes pas capable de le lire. Vérifiez les attributs dans le fichier XML.

Questions connexes