Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过importxml xpath查询获取子节点?_Xpath_Web Scraping_Google Sheets_Google Sheets Importxml - Fatal编程技术网

如何通过importxml xpath查询获取子节点?

如何通过importxml xpath查询获取子节点?,xpath,web-scraping,google-sheets,google-sheets-importxml,Xpath,Web Scraping,Google Sheets,Google Sheets Importxml,我正试图在我通过IMPORTXML导入的一个文件的Google工作表中显示单独的。 这段代码应该根据我提供的比赛ID和我的球员ID来获取我的比赛数据。我觉得简单地将/*或/td添加到Xpath的末尾应该是可行的,但我的知识就到此为止了。非常感谢您的帮助 我尝试过:在Xpath查询的末尾添加/*、/td和other,但似乎不起作用。 甚至禁用了JavaScript并再次检查了网站,但都无济于事 公式: =IMPORTXML(“;”//tr[contains(@class,'9764136')]”)

我正试图在我通过IMPORTXML导入的一个文件的Google工作表中显示单独的。 这段代码应该根据我提供的比赛ID和我的球员ID来获取我的比赛数据。我觉得简单地将/*或/td添加到Xpath的末尾应该是可行的,但我的知识就到此为止了。非常感谢您的帮助

我尝试过:在Xpath查询的末尾添加/*、/td和other,但似乎不起作用。 甚至禁用了JavaScript并再次检查了网站,但都无济于事

公式: =IMPORTXML(“;”//tr[contains(@class,'9764136')]”)

还尝试:

=IMPORTXML(“;”//td[parent::tr[contains(@class,'9764136')]]

这只给出了所有/td中的第一个,而没有给出其余的

当前的输出都混在一起:

"19LemthTop (Off)ZeusCoreTop (Off)  Roaminglost27108.7k127933650626.5k-183-/-5m7m21m31m"
我想要的输出在不同的行上是分开的:

"19

LemthTop (Off)ZeusCoreTop (Off)  Roaminglost

2

7

10

8.7k

127

9

336

506

26.5k

-

183

-/-

5m7m21m31m"
这个答案怎么样

问题和解决方法: 尽管我已经尝试解析每一行的值,但不幸的是,
td
似乎无法使用xpath直接解析,
IMPORTXML
作为每一行。但幸运的是,每个表都可以通过
IMPORTHTML
检索,也可以访问每个选项卡。使用它们,下面的解决方法如何

  • 使用
    IMPORTHTML
    从URL检索表
  • 检索一行,该行包含要使用查询的
    9764136
    对应的名称
  • 修正公式:
    • https://www.dotabuff.com/matches/5011379854
      被放入单元格“A1”
    • 检索表后,查询将从表中检索行。
      • 此解决方案的重点是方法。我认为有各种各样的公式来检索值。因此,请将上述示例公式视为其中之一
    结果:

    注:
    • 若将上述公式用于其他URL,则可能会发生错误。请小心这个
    参考资料:
    如果这不是你想要的方向,我道歉。

    这个答案怎么样

    问题和解决方法: 尽管我已经尝试解析每一行的值,但不幸的是,
    td
    似乎无法使用xpath直接解析,
    IMPORTXML
    作为每一行。但幸运的是,每个表都可以通过
    IMPORTHTML
    检索,也可以访问每个选项卡。使用它们,下面的解决方法如何

  • 使用
    IMPORTHTML
    从URL检索表
  • 检索一行,该行包含要使用查询的
    9764136
    对应的名称
  • 修正公式:
    • https://www.dotabuff.com/matches/5011379854
      被放入单元格“A1”
    • 检索表后,查询将从表中检索行。
      • 此解决方案的重点是方法。我认为有各种各样的公式来检索值。因此,请将上述示例公式视为其中之一
    结果:

    注:
    • 若将上述公式用于其他URL,则可能会发生错误。请小心这个
    参考资料:

    如果这不是您想要的方向,我很抱歉。

    谢谢Tanaike,这很好用。我去掉了转置和空字段skip,为第二个tablr添加了一个IFNA,现在它适用于我导入的每个matchID。使用importhtml上的查询是个好主意。@Lemth感谢您的回复。我很高兴你的问题解决了。这种变通方法的要点是我在回答中提到的方法。关于公式,我的建议是几个公式之一。因此,如果你的公式更有用,请将其作为答案发布并接受。通过这一点,它将对其他有同样问题的用户有用。谢谢Tanaike,这非常有效。我去掉了转置和空字段skip,为第二个tablr添加了一个IFNA,现在它适用于我导入的每个matchID。使用importhtml上的查询是个好主意。@Lemth感谢您的回复。我很高兴你的问题解决了。这种变通方法的要点是我在回答中提到的方法。关于公式,我的建议是几个公式之一。因此,如果你的公式更有用,请将其作为答案发布并接受。这样,它将对其他有相同问题的用户有用。
    =TRANSPOSE(SPLIT(TEXTJOIN("@",TRUE,QUERY(IMPORTHTML(A1,"table",1), "where Col4 contains '"&IMPORTXML(A1,"//a[contains(@href,'9764136')]")&"'", 0)),"@",TRUE,TRUE))