2

我正在尝试使用带有 nodejs 的cheerio.js 从 XBRL 获取条目的文本(在本例中为“10-Q”)。该行如下:

<dei:DocumentType contextRef="D2013Q3YTD" id="Fact-DB2A50C2A485F9CC21D51934C6E61D42">10-Q</dei:DocumentType>

我试过了:

$('dei:DocumentType').text

和其他一些无济于事。没有唯一的 id 或我能看到的任何其他内容。

示例文件:

http://www.sec.gov/Archives/edgar/data/1018724/000144530513002495/amzn-20130930.xml

那么我怎么能去提取这个文本呢?谢谢。


将文本按钮居中到屏幕 libgdx

我目前正在使用 LibGDX 创建游戏,并且正在创建我的标题屏幕。我在屏幕上将 TextButtons 居中时遇到问题,如果将 TextButton 的宽度设置为舞台的宽度,我可以使它们居中正常,但随后单击该按钮从左到右的任何位置都允许按下按钮而不是如果您只需单击按钮本身。

我怎样才能让 TextButtons 以游戏屏幕为中心并彼此居中?我有三个文本按钮(新游戏、继续和退出游戏)。

任何帮助将不胜感激,谢谢!

编辑:

这是我的三个按钮的代码。

btnNG = new TextButton("New Game", btnStyle[0]) {
    {
        setName("New Game");
        addListener(new InputListener() {
            public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
                g.debugOut(btnNG.getName(), "touchDown?");
                return true;
            }

            public void touchUp(InputEvent e, float x, float y, int pointer, int button) {
                g.debugOut(btnNG.getName(), "touchUp?");
                //g.switchScreen(new Mainscreen(g));
            }
        });
        setWidth(sTitle.getWidth());
        setPosition(0, (getHeight() * 2.5f));
    }
};

btnContinue = new TextButton("Continue", btnStyle[0]) {
    {
        setName("Continue");
        addListener(new InputListener() {
            public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
                g.debugOut(btnContinue.getName(), "touchDown?");
                return true;
            }

            public void touchUp(InputEvent e, float x, float y, int pointer, int button) {
                g.debugOut(btnContinue.getName(), "touchUp?");
            }
        });
        setWidth(sTitle.getWidth());
        setPosition(0, (getHeight() * 1.4f));
    }
};

btnExit = new TextButton("Exit Game", btnStyle[0]) {
    {
        setName("Exit Game");
        addListener(new InputListener() {
            public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
                g.debugOut(btnExit.getName(), "touchDown?");
                return true;
            }

            public void touchUp(InputEvent e, float x, float y, int pointer, int button) {
                g.debugOut(btnExit.getName(), "touchUp?");
                //Gdx.app.exit();
            }
        });
        setWidth(sTitle.getWidth());
        setPosition(0, (getHeight() * .3f));
    }
};

这就是我到目前为止所拥有的,它是居中的,但是这样做可以通过按屏幕上实际文本左侧/右侧的任意位置来单击它。

4

2 回答 2

5

事实证明,使用 Cheerio 解析上述文件是非常有可能的。

这适用于 Cheerio:

$('dei\\:CurrentFiscalYearEndDate').text().trim();

显然,必须两次转义特殊字符。

于 2014-04-11T22:12:21.870 回答
-1

XBRL 是 XML,它不能被视为带有像 Cheerio 这样的库的 HTML DOM。您将需要一个支持 Xpath 的 XML 解析器,例如xpathlibxmlo3-xml

然后您可以使用这样的 XPath 表达式获取值:

/*/dei:DocumentType/text()
于 2014-01-07T19:39:44.657 回答