2016-10-21 4 views
1

私はCFDi XML文書を解析しようとしています。 CFDiは電子請求書のメキシコ標準です。に関連している私は、エラーを推測R:CFDi XML文書を解析する方法

$Emisor 
$Emisor$DomicilioFiscal 
character(0) 

$Emisor$ExpedidoEn 
character(0) 

$Emisor$RegimenFiscal 
character(0) 


$Receptor 
$Receptor$Domicilio 
character(0) 


$Conceptos 
$Conceptos$Concepto 
character(0) 

$Conceptos$Concepto 
character(0) 

$Conceptos$Concepto 
character(0) 

$Conceptos$Concepto 
character(0) 

$Conceptos$Concepto 
character(0) 

$Conceptos$Concepto 
character(0) 

$Conceptos$Concepto 
character(0) 

$Conceptos$Concepto 
character(0) 

$Conceptos$Concepto 
character(0) 


$Impuestos 
Traslados 
     "" 

$Complemento 
$Complemento$TimbreFiscalDigital 
character(0) 

library(XML) 
xmlurl <- "CFDi.xml" 
xmlfile <- xmlTreeParse(xmlurl) 
xmltop <- xmlRoot(xmlfile) 
xmltable <- xmlSApply(xmltop, function(x) xmlSApply(x, xmlValue)) 

マイXMLTABLEが値リストをされて終わるのではなく、データマトリックス:I'veは成功しませんXMLライブラリ通常の構文解析処理を試してみましたXMLのスキーマですが、わかりません。ここにCFDi.xmlファイル(https://dl.dropboxusercontent.com/u/2736898/CFDi.xml)があります。ありがとう。

答えて

0

あなたのコードは正しいですが、入力したXMLファイルに抽出する値がないため、この場合は機能しません。

ファイル内のタグには値は含まれていませんが、属性にはxmlValueの値が返されません。

タグ名には、内部にコロンが付いているため、ちょっとしたことがあります。

は、ここではいくつかの例があります。

このCOSEの最後LISTEは、あなたがタグ名を表示することができます。

xmlfile <- xmlTreeParse(xmlurl, useInternalNodes = T) 
xmltop <- xmlRoot(xmlfile) 
names_file <- xmlSApply(xmltop, xmlName, full = TRUE) 
names_file 
      Emisor   Receptor   Conceptos   Impuestos 
    "cfdi:Emisor" "cfdi:Receptor" "cfdi:Conceptos" "cfdi:Impuestos" 
     Complemento 
"cfdi:Complemento" 

我々はCFDIの(属性の)すべての値を抽出したいとしますImpuestos:

xml_impuest <- xpathApply(xmltop, "cfdi:Impuestos", xmlAttrs) 
xml_impuest 
[[1]] 
totalImpuestosTrasladados 
      "207.440000" 

あなたが見ることができる広告は、 "Impuestosは、" 唯一の属性があります。

属性を「what」と「what」がどのように解析するかを正確に定義し、データを調べるための正確なxPathクエリを書き込む方が良いです(xpathApplyを使用)。

+0

おかげで、私はそれはあなたがそうであるように、私は属性のうち、情報が届かない除いて、仕事ができると思います。私はxml_impuestから:list()を取得します。 – Tavo

+0

ノードの名前を正しく入力してもよろしいですか?私のコードは結果を生成します。 – SabDeM

0

あなたはあなたのためCFDIsを作るサービスを利用して自分で仕事のトンを保存することができます:www.facturapi.io

代わりに、単に「timbrado」のサービスを利用しての、あなたがほとんどのために全体の請求書を生成するためのFacturapiを使用することができます同じ価格。

(免責事項:私はFacturAPIの著者だ)

関連する問題