於是,我就在下面的XML使用F# XML parsing post(從uclassify API):解析XML時,文件有xmlns屬性
<?xml version="1.0" encoding="UTF-8" ?>
<uclassify xmlns="http://api.uclassify.com/1/ResponseSchema" version="1.01">
<status success="true" statusCode="2000"/>
<readCalls>
<classify id="cls1">
<classification textCoverage="1">
<class className="happy" p="0.912929"/>
<class className="upset" p="0.0870707"/>
</classification>
</classify>
</readCalls>
</uclassify>
的代碼是一樣的東西:
let doc =
Xdocument.Load file
doc.Element(xn "uclassify")
.Element(xn "readCalls")
.Element(xn "classify")
.Element(xn "classification")
.Element(xn "class").Attribute(xn "p")
這確實不行!!!似乎無法完成解析。然而,除去屬性xmlns="http://api.uclassify.com/1/ResponseSchema" version="1.01"
使得它的工作:
let doc =
Xdocument.Load file
let test = IO.File.ReadAllText(file).Replace("xmlns=\"http://api.uclassify.com/1/ResponseSchema\" version=\"1.01\"","")
XDocument.Parse(test)
doc.Element(xn "uclassify")
.Element(xn "readCalls")
.Element(xn "classify")
.Element(xn "classification")
.Element(xn "class").Attribute(xn "p")
注意這個問題似乎與Why must I remove xmlns attribute ...。所以問題是爲什麼我必須刪除xmlns屬性?我應該使用什麼來分析具有xmlns屬性的xml?
謝謝
這也將是每一個如此稍快;-)。 – 2011-05-04 15:54:19