我尝试在Flex应用程序中读取.xlsx文件。 现在我试着确定我的信息在哪里。因此,我从.xlsx文件中获取了XML数据:
var x:XML = <worksheet mc:Ignorable="x14ac"
xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">
<dimension ref="A1:F77"/>
</worksheet>;
现在我想获得维度属性“ref”。因此,我使用以下代码:
var test:Object = x.dimension;
var value:Object = x.dimension.@ref;
如果我将架构表达式留在工作表中,两者都可以完美运行。如何通过包含模式获得正确的结果?有没有一种很好的方法来获取没有模式的XML?
坦克为你提供帮助。
答案 0 :(得分:3)
这是因为维度位于默认命名空间xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
因此,您可以简单地获取xml的默认命名空间并使用它:
var ns:Namespace = x.namespace();
var value:Object=x.ns::dimension.@ref;
或者自己创建并以相同的方式使用它:
var ns2:Namespace=new Namespace("http://schemas.openxmlformats.org/spreadsheetml/2006/main");
var value2:Object=x.ns2::dimension.@ref;
这里有关于wonderfl的现场测试: http://wonderfl.net/c/7XwU