私はHTML文書を2つのウィンドウで開き、選択したノードを両方のウィンドウ間で同期させる必要があります。Html Agility Packが無効なXPathを返す
HtmlNode myNode = GetSomeCertainNode();
string xpath = myNode.XPath; //xpath = "/#comment[1]"
// This line throws an XPathException
var reExtract = myNode.OwnerDocument.DocumentNode.SelectSingleNode(xpath);
を例外メッセージ:'/#comment[1]' has an invalid token.
私は思ったんだけど、私はそれが適切なXPathのだ意味し、ノード自体からXPathを取って、私はに対してそれを使用し、私が試したHtml Agility Packを使用し
同じ文書、それはなぜ失敗するのですか、私は何を欠場するのですか?
更新
私が代わりにこの例外を取得するいくつかの他のノードを選択:Expression must evaluate to a node-set.
(xpath
が/html[1]/body[1]/div[1]/p[3]/strong[1]/#text[1]
が含まれています)。
しかし、値はノード自体から取得されていることに注意してください。それは非常に奇妙です。どのように無効であると不平を言うのですか?
これは、HtmlNode.XPathプロパティによってどのように戻されましたか? HtmlNode.XPathを有効なXPathに変換する方法はありますか? – Shimmy
@Shimmy:あなたはそのライブラリの開発者に尋ねなければなりません。 –
回避策はありますか? – Shimmy